Table, Tree table: add dataReloadBtnLoading input so the reload button keeps focus while data loads
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Problem
cps-table and cps-tree-table only offer dataReloadBtnDisabled for the "Reload data" toolbar button. Apps bind it to their loading state, so the button is disabled while the data reloads.
A disabled button can't keep keyboard focus. When a keyboard user presses "Reload data", focus falls back to <body> and the focus ring disappears until the data arrives. With a real backend that takes a second or more. Screen readers lose their place too. (WCAG 2.4.3 Focus Order, 2.4.7 Focus Visible.)
Apps can move focus back once loading ends, but the gap remains. The only way around it today is to stop disabling the button, and then the user gets no sign that a reload is running.
Proposal
Add an input dataReloadBtnLoading: boolean (default false) to CpsTableComponent and CpsTreeTableComponent, and pass it to the reload button:
<cps-button
ariaLabel="Reload data"
icon="refresh"
...
[disabled]="dataReloadBtnDisabled"
[loading]="dataReloadBtnLoading"
(clicked)="onReloadData()">
</cps-button>
cps-button already handles loading the way we need:
- the native button stays enabled, so it keeps focus and its focus ring;
- clicks and Enter are ignored while loading, so no double reloads;
- it gets
aria-busy="true"and the loading style.
dataReloadBtnDisabled stays as it is, for when reloading really isn't possible.
Example
<cps-table
[showDataReloadBtn]="true"
[dataReloadBtnLoading]="loading"
(dataReloadBtnClicked)="reload()"
[loading]="loading">
</cps-table>
- Lenguaje dominante
- TypeScript
- Estrellas
- 9
- Forks
- 7
- Merge medio
- 18 h 58 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 AbsaOSS/cps-shared-ui
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
AbsaOSS/cps-shared-ui#875 ·
Los mantenedores suelen responder en 1 día
-
enhancement library
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
AbsaOSS/cps-shared-ui#644 ·
Los mantenedores suelen responder en 1 día
-
Table, Tree table: focus is lost after closing a column filter with Apply, Clear or ClosePosiblemente ocupada @fateeand la tomó hace 2 días. Abiertobug library
AbsaOSS/cps-shared-ui#896 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
CpsPaginatorComponent: page changes are not announced to screen readersPosiblemente ocupada @fateeand la tomó hace 2 días. Abiertobug library
AbsaOSS/cps-shared-ui#893 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
CpsDatepickerComponent: disabled cells are not marked aria-disabledPosiblemente ocupada @fateeand la tomó hace 2 días. Abiertobug library
AbsaOSS/cps-shared-ui#891 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de AbsaOSS/cps-shared-ui
Issues similares
-
bug ui-dashboard
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
caelestia-dots/caelestia#534 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug(scripts): install-git-hooks.sh points core.hooksPath at .githooks/, which does not existAbiertoarea: scripts bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
tdk-landscape/tdk-cli-core#2706 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
bobadilla-tech/biasmarket.com#402 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
javvadivijayprasad/sel2pw#28 ·