From b49f31efbee69c9fb687b4bf0400166b18bd4087 Mon Sep 17 00:00:00 2001 From: John McLear Date: Sat, 16 May 2026 11:33:15 +0100 Subject: [PATCH] fix(a11y): clear stale Loading aria-label + name title controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three accessibility regressions called out in the 2026-05-16 follow-up on ether/etherpad#7255 (the screen-reader-inspector screenshots in the issue comment): (1) The wrapping the loading text carried data-l10n-id="pad.loading". After etherpad PR #7584, html10n auto-populates aria-label on any node with a data-l10n-id, leaving the anchor with `aria-label="Loading..." data-l10n-aria-label="true"`. The plugin's three title-swap sites (initial render, recieveTitleMessage, save click) only cleared data-l10n-id, so the anchor's aria-label stayed "Loading..." forever — AT users heard "Loading..." even after the pad title was set to e.g. "Test". Move data-l10n-id onto an inner instead of the , so html10n's auto-aria-label lands on the span (which is replaced wholesale on title swap) rather than persisting on the anchor. Centralise the three title-swap sites through a single `applyLiveTitle` helper that also defensively strips aria-label / data-l10n-aria-label off the anchor in case an older template version is in play. (2) The pencil-icon edit button was a
with no accessible name and no native focus / Enter / Space handling — AT users couldn't tell it was a button and couldn't activate it from the keyboard. Promote it to
+ + Pad title + Edit pad title + Save pad title + + +

Loading...

+ + +
+ +