aria-invalid is not supported on handles
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 90/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- react, typescript
- Área
- accessibility, frontend
Línea de trabajo
Empieza por analizar cómo Slider reenvía las props de accesibilidad a sus handles de slider, especialmente el tratamiento existente de ariaRequired y del ariaDescribedByForHandle específico del handle. Añade una prop booleana ariaInvalid que renderice aria-invalid en cada handle. Terminar significa que la prop llega a todos los handles y que se verifican su tipo esperado, su comportamiento y la cobertura de accesibilidad.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
A handle (role="slider") can be given aria-label, aria-labelledby, aria-describedby (#1088), aria-required and aria-valuetext, but not aria-invalid. WAI-ARIA 1.2 supports aria-invalid on the slider role, and it is how a screen reader learns that a field's value failed validation. Without it, a form can show a slider's error only visually.
Slider drops the aria-* props it is given, and the handle takes nothing beyond its own props, so the only way to set it is to change the DOM after render, the workaround #1040 described for aria-describedby.
antd shows the gap. Form.Item passes aria-invalid, aria-describedby and aria-required to its child control. An Input gets all three, but Slider drops them (antd 6.6.6, @rc-component/slider 1.1.1):
<Form fields={[{ name: ['name'], errors: ['Too short'] }, { name: ['volume'], errors: ['Too quiet'] }]}>
<Form.Item name="name" label="Name" required extra="Your name">
<Input />
</Form.Item>
<Form.Item name="volume" label="Volume" required extra="How loud">
<Slider />
</Form.Item>
</Form>
renders, with class and style left out:
<input id="name" aria-describedby="name_help name_extra" aria-required="true" type="text" value="" aria-invalid="true">
<div tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-disabled="false"
aria-orientation="horizontal"></div>
Could the slider take an ariaInvalid?: boolean prop alongside ariaRequired, rendered as aria-invalid on each handle? antd could then pass it through as it did ariaDescribedByForHandle (ant-design/ant-design#59110), and its Slider could give the handle the aria-invalid, aria-describedby and aria-required that Form.Item hands it.
We hit this in react-jsonschema-form's antd theme, which can't mark its slider invalid: rjsf-team/react-jsonschema-form#5560.
- Lenguaje dominante
- TypeScript
- Estrellas
- 3.1k
- Forks
- 766
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 react-component/slider
-
Docs site is brokenAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
react-component/slider#1067 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
react-component/slider#1064 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
react-component/slider#1061 ·
-
当Slider宽度超过外层容器时,点击Slider,滚动条位置异常Posiblemente ocupada @nrps9909 la tomó hace 51 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
react-component/slider#1060 ·
-
Breaking changes for v11?Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
react-component/slider#1058 · 1 comentario ·
Todos los issues de react-component/slider
Issues similares
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)Posiblemente ocupada @Jxxunnn la tomó hoy. AbiertoBrowser Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
getsentry/sentry-javascript#25497 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
e2e-failure ready-to-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
redhat-developer/rhdh-plugin-export-overlays#4438 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
resource: destroying a resource calls AbortController.abort() without a reason, creating an AbortError with a stack trace each timePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea: core
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
angular/angular#71422 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
facebook/docusaurus#12739 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
vercel/ai#23537 · 1 comentario ·
Los mantenedores suelen responder en 1 día