Skip to content

[BUG] Sitewide navigation and footer lack accessible structure and focus order #1054

Open

Description

@adambuttrick

Component
Sitewide header, Learn submenu, logged-in account menu, and footer

Describe the issue
Shared navigation components do not consistently expose their grouping, purpose, or order to assistive technology. Some link groups are not lists, the logged-in menu is not a named navigation region, a native <nav> repeats its implicit role, and the RSS link appears too early in the keyboard focus order.

Affected findings

  • Audit row 9: Links under #header__nav-details-learn > div should be grouped in a list.
  • Audit rows 10 and 16: Footer navigation links should be grouped in a list.
  • Audit row 19: #js-header__nav is a native <nav> with a redundant role="navigation" attribute.
  • Audit row 22: .footer__icon-link receives focus before the other footer links; the RSS link should be last.
  • Audit row 37: .login-menu should be a named navigation region, such as "Account menu."
  • Audit row 38: .header__subnav-panel links should be a list within an identified navigation region.

Expected behavior
Screen readers announce each navigation region and its purpose. Related navigation links are exposed as lists. Keyboard focus follows the visual and logical reading order.

WCAG Standard

  • WCAG SC 1.3.1 Info and Relationships, Level A
  • WCAG SC 2.4.3 Focus Order, Level A
  • WCAG SC 4.1.2 Name, Role, Value, Level A

Recommended Fix
Use <ul> and <li> for related header and footer links. Mark the logged-in and Learn menus as navigation regions with distinct accessible names. Remove the redundant role from the existing <nav>. Move the RSS link after the other footer links in DOM and keyboard order.

Acceptance Criteria

  • Header, submenu, account, and footer navigation groups have correct list and landmark semantics.
  • Each navigation landmark has a distinct accessible name where more than one appears on a page.
  • No native <nav> repeats role="navigation".
  • Keyboard focus reaches the RSS link after the other footer links.

Activity

  1. elopatin-uc3 commented on Oct 28, 2026

    @elopatin-uc3

    Andrew noted that #9 above looks like it hasn't been implemented. Adding a screenshot here from production:

    Image

    These elements should be grouped in a list.

  2. sfisher commented on Oct 28, 2026

    @sfisher
    Contributor

    Hi Eric,

    Do you know any more infomation about what is wrong with this. As noted in number 9, the "Learn" menu items are grouped as a list and it was changed in the updates. Maybe something else needs to be changed? I'm also looking at production, so I think it should be the same code and looking at the specific nav-details-learn mentioned above.

    Image

    (Note the UL and LI subitems for the menu.)

  3. elopatin-uc3 commented on Oct 28, 2026

    @elopatin-uc3

    Thanks for having a look @sfisher. I will clarify the ask with Andrew. What you've pointed out looks correct to me.

  4. elopatin-uc3 commented on Oct 28, 2026

    @elopatin-uc3

    @sfisher Andrew pointed out the items in the Main nav, as well as those in the Account menu nav, once you're logged in. Both of these have links that are not currently in lists.

    Image Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions