Description
Some potential semantics that authors might need to add include (but are not limited to, there are probably weird edge cases I'm not thinking of):
role
disabled
/aria-disabled
aria-labelledby
aria-describedby
/aria-description
Using aria-labelledby
could be seen as unnecessary because of the content
approach, but that may not work for everyone -- often enough devs may have access to an element that should label the tab but not to the content of that element (e.g. when creating a design system, or with user-generated content). In those cases, it should be possible to name the scroll markers via reference rather than with a direct string.
The need for a description is probably a bit more self-explanatory, and isn't currently covered by CSS. Role as well -- I'm entirely sure people will use this in a way that doesn't cleanly fit the heuristics used to apply link
or tab
, and some accessibility SME who comes in later to fix it will need to override the semantics 😅.
One example of the need for a disabled
state could be a multi-step form or process, where it's possible to navigate back through previous steps, but future steps are disabled. This would currently possible to implement for sighted users with greyed-out styles, but would need disabled semantics to be accessible for screen reader users.