The email that fixed ReTab

by Xun

A visually impaired user emailed me last week:

I am visually impaired and rely on the screen reader (VoiceOver) built in to the OS.

When I invoke Re-Tab via CMD+E and then release/depress E, VoiceOver reads “ReTab (tap to hop, hold to cycle)” instead of the tab title, preventing access to the functionality of the app.

A year of shipping ReTab, fifteen versions, and the picker was unreadable to a screen reader the whole time. I hadn’t thought to test.

I had it backwards

The picker lives inside a Shadow DOM, opened in mode: "closed" to stop Dark Reader from inverting the highlight color on some pages. I’d assumed closed mode also hid the picker from VoiceOver, so I’d never bothered with ARIA.

It doesn’t. The closed part only blocks JavaScript — the accessibility tree walks right through. The picker had been sitting there, perfectly visible to VoiceOver, with nothing labeled for it to read.

An afternoon’s work

I added six attributes. The panel became a listbox, each card an option labeled with the tab title, and aria-activedescendant followed the highlight.

Then I trimmed the manifest description. Mine read "ReTab (tap to hop, hold to cycle)" — which Safari announced on every press while Cmd+E was held. Cycle through four tabs, hear the same eight syllables four times. The App Store listing and options page already explain the gesture, so the manifest got cut to one word:

"description": "ReTab"

What it sounds like now

Before, cycling four tabs:

“ReTab tap to hop hold to cycle.” [silence] “ReTab tap to hop hold to cycle.” [silence] “ReTab tap to hop hold to cycle.” [silence]

After:

“ReTab. GitHub, 1 of 5, selected.” “Stack Overflow, 2 of 5, selected.” “MDN, 3 of 5, selected.” [Cmd released, tab switches]

Same picker, same code path. Six attributes and one trimmed string later, it sounds like macOS Cmd+Tab.

Takeaway

A year of broken accessibility against an afternoon of fixing it. The ratio is bad even if only one person was affected.

ReTab 3.2 ships this week with the fix. If you use a screen reader and try it, I’d love to hear how it feels — and thanks to the reader who sent the email.