Skip to content

[a11y][Violation][4.1.2 Name, Role, Value] Some Notebook UI elements missing roles and labels #7488

@nkn2022

Description

@nkn2022

Description

I am running an accessibility test suite with Notebook UI using the IBM Equal Access Accessibility Checker tool on Chrome browser. The results look good overall, only a few things are missing to reach a first formal level of compliance. So kindly help look into these.

Issues reported were violating WCAG 2.2 requirements.
Ref: https://www.ibm.com/able/requirements/checker-rule-sets

Full report (includes information on element locations where issue were found):
Accessibility_Report-7a73e10e-f8a4-4a06-a78d-5174a1309c5b.xlsx

Category: 4.1.2 Name, Role, Value

Ref: https://www.ibm.com/able/requirements/requirements/?version=v7_3#4_1_2

Violation of Rule: element_tabbable_role_valid

List of issues with elements that violate this rule with a screenshots

Issue 1
The tabbable element's role 'generic' is not a widget role
Element location:
<div data-windowed-list-index="0" tabindex="0" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">
Image

Issue 2
The tabbable element's role 'none' is not a widget role
Element location:
<jp-button minimal="" appearance="stealth" current-value="" tabindex="0" title="Create a duplicate of this cell below" data-command="notebook:duplicate-below" aria-label="Create a duplicate of this cell below" aria-disabled="false" class="jp-ToolbarButtonComponent">
Screenshot:
Image

Issue 3 (Updated April 8, 2025 by @nkn2022)
The tabbable element does not have a valid widget role
<jp-button current-value="" tabindex="0" class="jp-ToolbarButtonComponent" appearance="stealth" title="Create a duplicate of this cell below" data-command="notebook:duplicate-below" aria-label="Create a duplicate of this cell below" aria-disabled="false">

**Violation of Rule: input_label_exists

List of issues with elements that violate this rule with a screenshots

Issue 1
Form control with "textbox" role has no associated label
Element location:
<div data-language="python" style="tab-size: 4;" tabindex="-1" aria-multiline="true" role="textbox" class="cm-content" contenteditable="true" translate="no" autocapitalize="off" autocorrect="off" spellcheck="false">
Screenshot:
Image

Reproduce

Here is the screenshot of the UI scanned for the attached report:
Image

Expected behavior

Missing roles/labels are in place.
Reference on how to fix this issue can be found in these links:
Add accessible names for inputs lacking visible labels
If repurposing a standard component, use ARIA to set the correct name and role
On custom components, use ARIA to expose name, role, and value

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions