Simplify submenu disclosure button label

Created on 27 March 2025, 4 months ago

Problem/Motivation

The visually hidden button label is: More "{{item.title}}" pages. This is a little wordy for screenreaders and could be simplified.

Proposed resolution

Change More "{{item.title}}" pages to {{item.title}} submenu.

🐛 Bug report
Status

Active

Version

2.1

Component

Code

Created by

🇺🇸United States hbrokmeier Wisconsin

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @hbrokmeier
  • 🇺🇸United States sonfd Portland, ME

    I agree that More {{ item.title }} pages is a verbose, despite it matching the Example Disclosure Navigation Menu with Top-Level Links pattern on w3.org.

    It looks like Olivero's submenu toggle is using "Toggle sub-navigation". I don't like that at all. I don't really like "sub-navigation" or "submenu," both feel very jargony to me. I'm inclined to recommend {{ item.title }} pages, but I worry that will be verbose too unless the link title is very short. Something like: "Admission & Aid pages" feels like a lot and considering screen readers would process the menu like "Admission & Aid, Admission & Aid pages" which really feels like a mouthful.

    I wonder if More {{ item.title }} is a reasonable compromise even though we'd need to swap to Less {{ item.title }} while it was toggled open.

  • 🇺🇸United States sonfd Portland, ME

    Updated the button label to "Submenu for LINK_TITLE" and set the default value for the visible label (if enabled) to the same.

  • 🇺🇸United States sonfd Portland, ME
  • 🇺🇸United States sonfd Portland, ME
  • 🇺🇸United States hbrokmeier Wisconsin

    I looked into this more, got some advice from the a11y slack and was referred to this article: https://adrianroselli.com/2019/06/link-disclosure-widget-navigation.html....

    Based on this a good approach is to use aria-labelledby and reference the link text instead of adding extra hidden text. Aria-expanded already gives context about what the button does, and this is less verbose for screen reader users

    <a id="about" href="/about">About</a>
    <button aria-labelledby="about" ...></button>
  • 🇮🇳India chhavi.sharma

    Implemented the aria-labelledby approach to simplify submenu disclosure button label.
    The issue needs review.

  • 🇺🇸United States sonfd Portland, ME

    Thank you @chhavi.sharma -

    I left some feedback in the MR. The biggest thing is that if we're not using the 'disclosure_button_label' setting anymore, we should remove it from the form. We need to keep the default value and leave existing values as-is to ensure that we don't break things for folks with an existing block and overridden template.

  • Status changed to Needs review about 1 month ago
  • 🇺🇸United States jayhuskins

    There's a slight misunderstanding here about the disclosure_button_label setting. This label is intended to be a visible label, as opposed to the default More "{{item.title}}" pages which is a visually-hidden label added as an accessibility fallback to explain the button's purpose if no label is present. If we use the aria-labelledby method to replace the current accessibility fallback, we will still want to keep the disclosure_button_label setting.

Production build 0.71.5 2024