Els formularis són una part essencial de moltes aplicacions web, ja que permeten als usuaris introduir i enviar informació. Assegurar-se que els formularis siguin accessibles és crucial per garantir que tots els usuaris, incloses les persones amb discapacitats, puguin interactuar amb ells de manera efectiva.
Conceptes Clau
-
Etiquetes (Labels) Clarament Associades:
- Cada camp de formulari ha de tenir una etiqueta (
<label>
) clarament associada. Això ajuda els usuaris de lectors de pantalla a entendre el propòsit de cada camp. - Exemple:
<label for="email">Correu Electrònic:</label> <input type="email" id="email" name="email">
- Cada camp de formulari ha de tenir una etiqueta (
-
Ordre de Navegació Lògic:
- L'ordre de navegació amb el teclat ha de seguir una seqüència lògica. Utilitza l'atribut
tabindex
només quan sigui necessari per corregir l'ordre natural. - Evita l'ús excessiu de
tabindex
per no complicar la navegació.
- L'ordre de navegació amb el teclat ha de seguir una seqüència lògica. Utilitza l'atribut
-
Indicadors de Requeriment:
- Indica clarament quins camps són obligatoris. Això es pot fer visualment i mitjançant atributs com
aria-required
. - Exemple:
<label for="name">Nom: <span aria-hidden="true">*</span></label> <input type="text" id="name" name="name" aria-required="true">
- Indica clarament quins camps són obligatoris. Això es pot fer visualment i mitjançant atributs com
-
Missatges d'Error Accessibles:
- Proporciona missatges d'error clars i accessibles quan es produeixen errors de validació.
- Utilitza
aria-live
per assegurar-te que els lectors de pantalla notifiquin els usuaris dels errors. - Exemple:
<div aria-live="assertive" id="error-message" style="color: red;"> <!-- Missatge d'error aquí --> </div>
-
Descripcions Addicionals:
- Utilitza
aria-describedby
per proporcionar informació addicional sobre un camp de formulari. - Exemple:
<label for="password">Contrasenya:</label> <input type="password" id="password" name="password" aria-describedby="password-help"> <small id="password-help">La contrasenya ha de tenir almenys 8 caràcters.</small>
- Utilitza
Exercicis Pràctics
Exercici 1: Crear un Formulari Accessible
Crea un formulari de registre amb els següents camps: Nom, Correu Electrònic, Contrasenya i Confirmació de Contrasenya. Assegura't que el formulari sigui accessible seguint els conceptes clau esmentats.
Solució Proposada:
<form> <div> <label for="name">Nom: <span aria-hidden="true">*</span></label> <input type="text" id="name" name="name" aria-required="true"> </div> <div> <label for="email">Correu Electrònic: <span aria-hidden="true">*</span></label> <input type="email" id="email" name="email" aria-required="true"> </div> <div> <label for="password">Contrasenya: <span aria-hidden="true">*</span></label> <input type="password" id="password" name="password" aria-required="true" aria-describedby="password-help"> <small id="password-help">La contrasenya ha de tenir almenys 8 caràcters.</small> </div> <div> <label for="confirm-password">Confirmació de Contrasenya: <span aria-hidden="true">*</span></label> <input type="password" id="confirm-password" name="confirm-password" aria-required="true"> </div> <button type="submit">Registrar-se</button> </form>
Exercici 2: Afegir Missatges d'Error Accessibles
Modifica el formulari anterior per incloure missatges d'error accessibles quan els camps obligatoris no es completen correctament.
Solució Proposada:
<form> <div> <label for="name">Nom: <span aria-hidden="true">*</span></label> <input type="text" id="name" name="name" aria-required="true"> <div id="name-error" aria-live="assertive" style="color: red;"></div> </div> <div> <label for="email">Correu Electrònic: <span aria-hidden="true">*</span></label> <input type="email" id="email" name="email" aria-required="true"> <div id="email-error" aria-live="assertive" style="color: red;"></div> </div> <div> <label for="password">Contrasenya: <span aria-hidden="true">*</span></label> <input type="password" id="password" name="password" aria-required="true" aria-describedby="password-help"> <small id="password-help">La contrasenya ha de tenir almenys 8 caràcters.</small> <div id="password-error" aria-live="assertive" style="color: red;"></div> </div> <div> <label for="confirm-password">Confirmació de Contrasenya: <span aria-hidden="true">*</span></label> <input type="password" id="confirm-password" name="confirm-password" aria-required="true"> <div id="confirm-password-error" aria-live="assertive" style="color: red;"></div> </div> <button type="submit">Registrar-se</button> </form>
Conclusió
Els formularis accessibles són essencials per garantir que tots els usuaris puguin interactuar amb les aplicacions web de manera efectiva. Mitjançant l'ús d'etiquetes clares, missatges d'error accessibles i una navegació lògica, podem millorar significativament l'experiència d'usuari per a persones amb discapacitats. Practicar aquests principis en els teus projectes t'ajudarà a crear aplicacions més inclusives i accessibles.
Curs d'Accessibilitat Web
Mòdul 1: Introducció a l'Accessibilitat Web
- Què és l'Accessibilitat Web?
- Importància de l'Accessibilitat Web
- Visió General de les Lleis i Estàndards d'Accessibilitat
- Introducció a WCAG
Mòdul 2: Comprensió de les Discapacitats i les Tecnologies Assistencials
- Tipus de Discapacitats
- Visió General de les Tecnologies Assistencials
- Com les Persones amb Discapacitats Utilitzen la Web
Mòdul 3: Principis del Disseny Accessible
- Perceptible: Fer el Contingut Accessible als Sentits
- Operable: Interfície d'Usuari i Navegació
- Comprensible: Informació i Operació
- Robust: Compatibilitat amb Tecnologies Actuals i Futures
Mòdul 4: Implementació de l'Accessibilitat en HTML i CSS
- HTML Semàntic
- Formularis Accessibles
- Ús de Rols i Propietats ARIA
- Contrast de Color i Redimensionament de Text
Mòdul 5: Accessibilitat en JavaScript i Multimèdia
- Creació de Ginys JavaScript Accessibles
- Accessibilitat del Teclat
- Contingut de Vídeo i Àudio Accessible
- Proporcionar Alternatives de Text per a Imatges
Mòdul 6: Prova i Avaluació de l'Accessibilitat
- Tècniques de Prova Manual
- Eines de Prova Automatitzades
- Prova d'Usuari amb Tecnologies Assistencials
- Interpretació d'Informes d'Accessibilitat