bug(Tabs): Accessibility issues with Tab Pagination
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- angular, typescript
- Área
- accessibility, frontend
Línea de trabajo
Comienza en la Material tabs overview page y redimensiona la ventana a 700px o menos para inspeccionar los chevrones de paginación de las pestañas. Revisa cómo se exponen los elementos de paginación a los usuarios de teclado, lectores de pantalla y navegación por voz; después, verifica que la semántica y las etiquetas resultantes coincidan con el comportamiento esperado en el issue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
The information below is from a report from Evinced with 2 findings (Interactable Role and Accessible Name) on the Tab Pagination elements:
Interactable Role
Interactive elements, such as buttons, links, and inputs, must convey that they can be interacted with by using the proper semantics.
Severity: Critical
Cause: Screen readers are unable to identify that the element is interactive due to missing or incorrect semantics.
Effect: Screen reader users may not find the content or may not realize that the the content is interactive.
Read more in Evinced Knowledge Base
How To Fix:
Use native HTML interactive elements such as <button>, <a>, <select>, <input>. Alternatively, add the appropriate ARIA role that corresponds to the content purpose.
WCAG Violations: 4.1.2 Name, Role, Value (Level A)
Section 508: 1194.21(d)
EN 301 549: 9.4.1.2 Name, Role, Value
Accessible Name
Elements that can be interacted with, such as buttons, links, and input fields, must have an accessible name. The name should indicate which information or action is required, and/or what will happen if they interact with it.
Severity: Critical
Cause: The element does not have an accessible name to inform the screen reader of its purpose and function.
Effect: Assistive technologies use the accessible name to label, announce and trigger the element's action. If there's no valid accessible name, assistive technologies won't be able to understand the element correctly.
Read more in Evinced Knowledge Base
How To Fix:
Depending on the type of element, either add a descriptive text to the body of the tag or add the appropriate attributes to the tag.
WCAG Violations: 4.1.2 Name, Role, Value (Level A)
Reproduction
This issue is visible on the Material documentation page:
https://material.angular.dev/components/tabs/overview
Resize your window to 700px or less for the Tab Pagination 'chevron' elements to appear. Inspect these elements to observe their (lack of) accessible attributes.
Expected Behavior
These elements should be hidden from keyboard and screen readers.
These elements should be labeled for voice navigation.
The potential fix could include applying the following attributes to each arrow
role=button aria-hidden=”true” tabindex=-1
aria-label with 'Scroll Tabs Right' or 'Scroll Tabs Left'
Actual Behavior
Each tab pagination 'button' is composed of 2 div elements:
<div mat-ripple="" class="mat-ripple mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after">
<div class="mat-mdc-tab-header-pagination-chevron"></div>
</div>
This is an interactive element that isn't adequately labeled / accessible for voice navigation users.
Environment
- Angular: 20
- CDK/Material: 20
- Browser(s): Chrome, any
- Operating System (e.g. Windows, macOS, Ubuntu): any
- Lenguaje dominante
- TypeScript
- Estrellas
- 25k
- Forks
- 6.8k
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 82
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de angular/components
-
area: cdk/a11y gemini-triaged needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
angular/components#33999 ·
Los mantenedores suelen responder en 1 día
-
bug(aria/combobox): keys pressed back to back are lost; only the last one reaches the popupPosiblemente ocupada @drakeo338 la tomó hace 3 días. Abiertoarea: aria/combobox gemini-triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
angular/components#33973 ·
Los mantenedores suelen responder en 1 día
-
bug(material/sort): hover hint arrow on an unsorted header shows the active sort direction, not the resulting direction after click.Posiblemente ocupada @lekhmanrus la tomó hace 14 días. Abiertoarea: material/sort P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
angular/components#33933 ·
Los mantenedores suelen responder en 1 día
-
bug(mat-date-picker): month shown twice in date pickerPosiblemente ocupada @PreethiPantangi la tomó hace 32 días. Abiertoarea: material/datepicker P4
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
angular/components#33763 · 2 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 1 día
-
Bug in table.scss footer cell height: unset instead of footer row height unsetPosiblemente ocupada @minwookshin la tomó hace 18 días. Abiertoarea: material/table P4
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
angular/components#33709 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de angular/components
Issues similares
-
createAI: the ai peer range allows ai@6, which the provider cannot work withPosiblemente ocupada @akhil9tiet la tomó hoy. Abiertobug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
cloudflare/agents#2690 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
[fullsend] E2E: theme — global-header ignores app.branding.fullLogo (RHDHBUGS-3670)Posiblemente ocupada @fullsend-ai-coder la tomó hoy. Abiertoe2e-failure ready-to-code
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
redhat-developer/rhdh-plugin-export-overlays#4503 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
needs triage 📥
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
ethereum/ethereum-org-website#19601 ·
Los mantenedores suelen responder en 1 día
-
[Bug]: Circular app layout navigation and help icons are shifted upward in the official demoAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
cloudscape-design/components#5184 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
agilepathway/label-checker#805 ·
Los mantenedores suelen responder en 1 día