Page MenuHomePhabricator

Add role="banner" landmark to the header
Closed, DeclinedPublic



In VO on macOS, the header is not listed in the landmarks, even though it is announced as a banner in Voiceover's default navigation mode.

Screen Shot 2021-05-18 at 1.20.59 PM.png (1×3 px, 1 MB)

Acceptance criteria

  • the header element has a role="banner" attribute and is properly listed as a landmark in Chrome with VO

Screen Shot 2021-05-18 at 1.21.30 PM.png (1×3 px, 1 MB)

Event Timeline

I'm aware of Safari issues when role="contentinfo" is missing. But have never came across missing banner yet.
Do you have further information on which browser/VO combinations are affected?

I did some additional testing, and it seems this is only happening with Chrome/VO and Chrome/Jaws. I tested Safari/VO, Firefox/Narrator, and Chrome/Narrator. In Chrome/Jaws it's not announced as a banner at all when navigating through landmarks and when listing all landmarks.

Not entirely sure why this inconsistency is happening (probably just inconsistencies with screenreader behavior), but I believe it should be pretty safe to add the role="banner" either way.

Adding code client-side wise, specifically if it's a specific browser's bug, is something we tend to be extra careful with from performance and delivery cost perspective. Next step would be to clarify if it's a common bug in Chrome or maybe only affecting certain versions and combinations (you already did latter). With that we decide to leave the upstream problem untouched or we mitigate with a clear notice on which browsers/screenreaders combination is affected in order to later remove it again.

I was looking at this again and I realized I made a mistake earlier, the landmark is being announced correctly with Chrome/JAWS. This issue is limited to Chrome/VO afterall

bwang updated the task description. (Show Details)
LGoto added a subscriber: LGoto.

This task was closed as part of backlog upkeep. If you believe it was closed in error, please respond on the ticket.

This seems fine to have been declined as its an upstream error.