Mobile Accessible Web Schedule
| .gitignore | ||
| .hintrc | ||
| .prettierrc | ||
| maws-calendar.ics | ||
| maws-event_uids.txt | ||
| maws-textonly.txt | ||
| maws.css | ||
| maws.html | ||
| maws.js | ||
| README.md | ||
| schedule-lts-wcag.html | ||
| schedule.css | ||
| schedule.html | ||
DVS 7 — MAWS (Mobile Accessible Web Schedule)
A lightweight, WCAG-first, mobile-friendly schedule for DVS 7. Zero build chain, pure HTML/CSS/JS, works great without JavaScript.
Files
Web (core)
maws.html— markup & content (one page)maws.css— styles (AAA contrast, responsive, card layout)maws.js— behaviour (filters, host search, local time line)
Downloads (for attendees)
maws-calendar.ics— add events to personal calendarmaws-textonly.txt— plain-text schedule (screen-reader & copy-paste friendly)
Legacy (reference only)
schedule-lts-wcag.html— original long-term stable version
Goals & Accessibility
- Mobile-first: tables collapse into cards at ≤900px.
- WCAG: AAA contrast on text; visible focus, skip links, semantics.
- No-JS compatible: the page is fully usable without JS.
- Assistive tech: clear headings, captions, landmarks, and sr-only text.
How it works
Tracks & filters
- Track filter checkboxes live in Filter sessions.
- Each row carries
data-track="…". Values must match the checkbox values (e.g.music,art,discord exclusive, etc.). - Optional Host search filters rows by text in the Hosts cell.
Local time line
- Time cells include a UTC hint, e.g.
(22:00–00:00 UTC). - JS reads the day from the
<summary>(e.g. “Friday, August 29”) and renders Local: HH:MM–HH:MM beneath the UTC line. - Page-level
data-start-date="2025-08-28"anchors DST rules.
Hosts
- Use a plain list:
<ul class="hostlist" role="list" aria-label="Hosts"><li>…</li></ul> - If unknown, leave the cell present but empty (keeps columns aligned).
UIDs
- Every event has a stable ID for cross-referencing and automation:
- In the row:
id="ev-someid"anddata-uid="someid". - Hidden span inside time cell:
<span class="event-uid" hidden>someid</span>
- In the row:
- A full list is in
maws-event_uids.txt.
Editing content (safe checklist)
When adding or editing a session row:
- Keep columns: Time, Session, Hosts, Track, Content warnings.
- Update
data-track,data-uid,data-day-index. - Put UTC hint in the Time cell
(HH:MM–HH:MM UTC)(local time renders automatically). - Long titles/hosts are fine—cards wrap and hyphenate (with
-webkit-hyphensfor older iOS). - Don’t remove the Hosts cell; leave it empty if not declared.
Styling & theming
- Track badges: AAA black text + coloured border/dot per track.
- Cards (≤900px): labelled grid, left colour accent by track, dotted divider between sessions.
- Day navigation and download buttons share the same sizing for consistency.
Browser support notes
- Hyphenation:
hyphens+-webkit-hyphens(covers iOS Safari < 17). - If CSS fails to load, a tiny inline fallback in
<head>preserves fonts, layout, and card view. - We use a build marker var:
:root { --maws-build: "fix-b4"; }for quick diagnosis.
Cache-busting & sanity checks
If changes don’t appear:
- Hard refresh (Cmd/Ctrl-Shift-R).
- DevTools → Network → confirm
maws.css?v=fix-b4loads. - DevTools → Console should show:
MAWS JS build: fix-b4 loadedIf you see a warning about the build marker, your browser has the old CSS—hard refresh again.
Contributing
- Keep copy changes minimal and accessible (plain language, short sentences).
- Don’t remove semantic elements (captions, headings, roles, aria-labels).
- Test:
- Desktop + phone sizes (try ≤390px).
- Keyboard only: Tab order, visible focus.
- High zoom (200–400%).
- One track selected + host filter applied (edge cases).
Support
Problems? Ping Éimí in #tech on Discord. Copyright © DVS 2025.