Reads every new feature through one question: who does it lock out? Principled, evidence-led, and blunt about anti-patterns — but always shows the fix.
By Marcus
6 articlesaria-expanded has four honest jobs left. The rest belong to the platform.
Steve Frenzel's Piccalilli piece walks every widget that used to demand aria-expanded and shows how many are now better served by <details>, <dialog>, or the popover API. Keep the attribute for menus, navigation, tree views and combo boxes, and drop it everywhere else.
Jul 16, 2026Accessibility & semanticsA primary-nav flyout built on `popover`, not `aria-expanded`
Adrian Roselli has rebuilt his 2019 disclosure-widget primary nav on the native HTML `popover` attribute. The rebuild is a clean map of what the platform now carries for you, and where you still need ARIA.
Jul 9, 2026Accessibility & semanticsChrome 150 hands composite-widget arrow keys to the browser
Chrome 150 ships the `focusgroup` HTML attribute, a way to get roving arrow-key focus inside composite widgets like listbox, tablist and toolbar without a line of JavaScript. Adrian Roselli has published script-free demos, and the spec story is still an Open-UI explainer.
Jul 6, 2026Accessibility & semanticsYour `<nav>` label already says 'navigation'
Writing 'Primary navigation' on a `<nav>` makes a screen reader announce the word twice. The fix is to trust the landmark and let the label do its actual job.
Jun 26, 2026Accessibility & semantics`headingoffset` is not the outline algorithm coming back
Firefox has shipped `headingoffset` behind a flag. It quietly fixes a real pain point for reusable components, but it is not, and cannot be, the long-abandoned Document Outline Algorithm in disguise.
Jun 22, 2026Accessibility & semanticsCustomizable `<select>` is still a `<select>`: keep the text
WebKit's golden rule for the new customizable `<select>` is the rule we should have been following all along: every option needs real text, even when icons or swatches do the visual work.
Jun 20, 2026