Skip to content

Flutter Web: aria-describedby must be an available property on all component types (Accessibility) #162140

Closed

Description

@jcollins-disney

Use case

The WAI-ARIA property aria-describedby must be available on all Flutter component types/widgets to provide more information about an element that the user might need.

Proposal

Add the WAI-ARIA property aria-describedby to the list of semantics flags on all Flutter component types/widgets. Its value must only be the ID of another text string element on the page (text strings are not a valid value for aria-describedby). Multiple ID's can be listed (each separated by a single space) in order to form a single accessible description.

Examples:

aria-describedby="text1"
aria-describedby="text1 text2 text3"

Activity

  1. added
    in triagePresently being triaged by the triage team
    c: new featureNothing broken; request for a new capability
    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)
    platform-webWeb applications specifically
    c: proposalA detailed proposal for a change to Flutter
    team-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)
    and removed
    in triagePresently being triaged by the triage team
    on Jan 24, 2025
  2. chunhtai commented on Feb 3, 2025

    @chunhtai
    Contributor

    I think you can workaround this by providing your own Semantics(hint:), is there a use case that you have to do it by using describedby?

  3. added
    P3Issues that are less important to the Flutter project
    on Feb 3, 2025
  4. moved this to Not planned in Framework A11y Hotliston Feb 5, 2025
  5. self-assigned this
    on Mar 6, 2025
  6. added
    P1High-priority issues at the top of the work list
    and removed
    P3Issues that are less important to the Flutter project
    on Mar 6, 2025
  7. yjbanov commented on Mar 6, 2025

    @yjbanov
    Contributor

    I think my #162094 (comment) over in the aria-labelledby issue applies to aria-describedby too. Essentially, if we have enough semantic properties - label, hint, value - to describe a node, then app code can use a Dart variable too apply the same label/description to multiple widgets. aria-labelledby seems to exist in HTML mostly because HTML doesn't support variables.

  8. yjbanov commented on Apr 17, 2025

    @yjbanov
    Contributor

    We've decided to address this issue as follows:

    • Context: currently the closest thing to ARIA description Flutter has is hint. However, right now all we do is concatenate it with the label. This works for some screen readers, but not all. For example, JAWS will read label => widget type => description. However, our approach causes it to read label => description => widget type. Since description can be long, the user has to wait before they will be given the widget type.
    • Action: Flutter will implement the hint property in terms of ARIA description. The available options are aria-description and aria-describedby. Since aria-description is introduced with ARIA 1.3, we'll need to first investigate its availability across browsers (caniuse is optimistic, but MDN is less so). As part of that Flutter will incorporate a workaround for the JAWs bug that causes it to not read description when it's not accompanied by a label.
  9. moved this from Not planned to No status in Framework A11y Hotliston May 15, 2025
  10. flutter-zl commented on Jun 17, 2025

    @flutter-zl
    Contributor

    This issue was fixed by #169157. Feel free to reopen this issue if issue still persists.

  11. github-actions commented on Jul 1, 2025

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  12. locked as resolved and limited conversation to collaborators on Jul 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)c: new featureNothing broken; request for a new capabilityc: proposalA detailed proposal for a change to Fluttercustomer: castawayplatform-webWeb applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)triaged-accessibilityTriaged by Framework Accessibility teamworkaround availableThere is a workaround available to overcome the issue

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions