🚀 On the convention front, the Seattle Worldcon schedule was released this past week. Since I’m our website admin, I’m quite happy with the technical side of things, as I was able to present the full 5-day schedule on a single page, filterable by day, track, or both, and with clean (for WordPress), semantic, and accessible (to the best of my ability to verify) code.
A bit of geekery:
The Javascript code that does the filtering could quite probably be improved and optimized, as it’s just a result of me digging through the web and hacking things together until it did what I wanted, and my JavaScript knowledge is just barely at the level that allowed me to figure this out. But hey, it works, and that was the most important part.
Each panel is wrapped in an article
tag, each panel title is a heading, and start and end times are wrapped in proper time
tags. Panel titles are linked self-anchors so that it’s easy to link directly to individual panels, which is discoverable either by tabbing to the title or by mousing over them. Here’s a sample of the code for one (totally randomly chosen) panel:
<article class="track dan eve">
<h4 id="EVE03"><a href="#EVE03">Wednesday Night Dance with DJ Wüdi</a></h4>
<div class="sched">Events; Dance/Movement<br>Sheraton: Metropolitan Ballroom, <time datetime="2025-08-13T20:00-07:00">Wed. 8 p.m.</time>–<time datetime="2025-08-14T02:00-07:00">2 a.m.</time></div>
<p class="desc">From dance clubs in Alaska in the '90s to being a recent regular DJ at Norwescon, DJ Wüdi spins an eclectic mix of dance tracks from across the decades. Pop, electronica/dance, wave, disco, goth/EBM/industrial, convention classics, mashups… (almost) anything goes! Already know there's something that'll get you out on the floor? <a href="https://app.limedj.com/shows/djwudi/9NWMHW">Send in your requests ahead of time!</a></p>
<p class="pros">DJ Wüdi</p>
</article>
Keyboard navigation for the page works fine, checking it with WAVE comes up with zero errors (and 400-some “alerts”, but that’s because WAVE incorrectly thinks the panelist listings should be headers), checking with ANDI also looks good, and I was able to navigate and interact (at least as well as a non-regular screen reader user can) with VoiceOver and NVDA. This certainly doesn’t mean that there aren’t things that could be improved, but I’m pretty happy with where I got things to be.