Skip to content

Editor find input controls are visually grouped but not programmatically associated / focus order inconsistent #167885

@jjaeggli

Description

@jjaeggli

Controls within the editor find dialog corresponding to the find input are visually grouped but not programmatically associated with one another. The "Match case", "Match word", and "Match regular expression" checkboxes are visually located within the input field. However, within the accessibility tree, they are not grouped, therefore there is no direct association between these controls and the "Find" input.

Screen Shot 2022-11-29 at 10 35 26 AM

This is additionally complicated when the "Replace" toggle is expanded. When this occurs, the focus order of the controls change, and does not follow the visual structure of the page.

Screen Shot 2022-12-01 at 2 38 04 PM

WCAG 2.1 1.3.1 Level A specifies that visual relationships perceivable by one set of users is preserved for all users. This can be achieved by grouping related form controls.

WCAG 2.4.3 specifies that focus order should allow a user to navigate through the content in a sequential and consistent order that reflects the logical relationships present on the page. When the "Replace" toggle is expanded, the focus order of the elements change so that the find input controls now occur after the replace input field, and the "Preserve Case" control follows this, with no indication that "Preserve Case" is a new control which relates to replace.

My recommendation is that find and replace toggles are programmatically grouped with their associated fields, and that focus order respects the visual grouping of these controls.

Persistent visual labels provided by FR #167870 can be used to label the groups.

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityKeyboard, mouse, ARIA, vision, screen readers (non-specific) issueseditor-findEditor find operationsunder-discussionIssue is under discussion for relevance, priority, approach

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions