Formularios
File upload
Selecciona archivos con instrucciones y estado.
Ejemplo
Vista real construida con los archivos compilados de Ally.
PDF o HTML, máximo 5 MB.
Ningún archivo seleccionado.
<div class="ally-file">
<label class="ally-label" for="page-file-upload-file">Adjuntar reporte</label>
<input id="page-file-upload-file" type="file" accept=".pdf,.html" data-max-size="5000000">
<p class="ally-field-help">PDF o HTML, máximo 5 MB.</p>
<p data-ally-file-status role="status">Ningún archivo seleccionado.</p>
</div>
Contrato accesible
- Propósito
- Selecciona archivos con instrucciones y estado.
- Clases CSS
.ally-filey modificadores de estado documentados.- HTML
- Elemento semántico correspondiente, heading o nombre accesible y controles nativos.
- ARIA
- Usa HTML nativo primero y añade nombre, estado o relaciones ARIA solo cuando el patrón lo requiera.
- Teclado
- Tab enfoca; Enter o Space abre el selector nativo.
- Foco
- El label conduce al control; el primer error recibe foco tras un envío inválido.
- Estados
- default, hover, focus, disabled, required, valid, invalid y loading.
- Ally Debug
- Valida estructura, nombres, relaciones, controles y estados detectables dentro del scope.
Estados y variantes
defaultfocusactivedisablederror
Los estados visibles deben acompañarse de texto, atributos nativos o propiedades ARIA; nunca dependen solo del color.
Accesibilidad
Prueba obligatoria: semántica, teclado, foco visible, zoom al 200%, contraste, reduced motion y lector de pantalla.
No hacer
<div class="ally-file">Contenido sin elemento semántico, nombre accesible ni estados asociados.</div>
Un contenedor genérico con una clase visual no reemplaza la semántica, el nombre accesible ni la gestión de estados.