Creación de páginas web accesibles

Aprende a crear páginas web que funcionen para todo el mundo: con teclado, con lector de pantalla y al aplicar zoom. Parte del HTML semántico y la estructura de la página, escribe alternativas textuales útiles para imágenes y contenido multimedia, y haz que todos los controles sean alcanzables y tengan un foco visible. Comprueba el contraste de color, evita depender solo del color y mantén las disposiciones utilizables con un zoom del 400 %. Crea formularios con etiquetas, textos de ayuda y mensajes de error claros, añade ARIA solo donde HTML no ofrezca una solución nativa y prueba tus páginas con herramientas automáticas y manualmente. El objetivo en todo momento es el nivel AA de las WCAG 2.2.

PrincipianteUnidad 7 de 8 del curso Curso de Fundamentos de desarrollo web

Lo que aprenderás

  1. Usa los elementos HTML por su significado para que los navegadores, los lectores de pantalla y los teclados puedan funcionar con tus páginas, y comprende qué reciben las tecnologías de apoyo de tu código.
    • Explica cómo leen una página web las tecnologías de apoyo
      Describe quién depende de un código accesible, cómo convierte el navegador el HTML en un árbol de accesibilidad y cómo establece el nivel AA de las WCAG 2.2 un objetivo comprobable.
    • Da a cada página una estructura clara y fácil de recorrer
      Define el idioma y el título de la página, marca los puntos de referencia, encabezados y listas, y mantén un orden significativo en el código fuente.
    • Elige elementos nativos para enlaces, botones, controles y tablas
      Elige enlaces para navegar y botones para realizar acciones, escribe textos de enlace comprensibles, prefiere los controles integrados y marca las tablas de datos para que se anuncien sus encabezados.
  2. Proporciona a imágenes, iconos, gráficos, audio y vídeo un equivalente textual que cumpla la misma función, y oculta el contenido puramente decorativo a las tecnologías de apoyo.
    • Escribe texto alternativo adecuado para la finalidad de cada imagen
      Determina si una imagen es informativa, decorativa, funcional, de texto o compleja, y escribe el texto alt correspondiente.
    • Asigna nombres a los iconos y gráficos SVG y proporciona alternativas textuales al contenido multimedia
      Da un nombre accesible a los botones con iconos y a los SVG en línea, oculta los gráficos decorativos y añade subtítulos para personas sordas, transcripciones y audiodescripción al audio y al vídeo.
  3. Permite que las personas lleguen a todos los controles y los usen con el teclado en un orden lógico, vean siempre dónde está el foco, salten el contenido repetido y mantengan su lugar cuando cambie la página.
    • Usa una página con el teclado siguiendo un orden de foco lógico
      Usa las teclas estándar, conoce qué elementos reciben el foco, usa tabindex correctamente y mantén un orden de foco lógico, sin trampas ni paradas invisibles.
    • Muestra el foco con claridad y facilita la activación de los controles
      Mantén un indicador de foco visible y de alto contraste, evita que el elemento con foco quede cubierto y da a las áreas de activación del puntero suficiente tamaño o separación.
    • Añade enlaces de salto y gestiona el foco cuando cambie el contenido
      Permite que quienes usan el teclado salten bloques repetidos, mueve el foco de forma lógica cuando el contenido se abra, se cierre o desaparezca, y evita cambios que el usuario no haya solicitado.
  4. Elige combinaciones de colores con suficiente contraste, nunca dejes que el color transmita significado por sí solo y mantén las páginas utilizables cuando las personas apliquen zoom o amplíen el texto.
    • Mide el contraste de color y cumple los requisitos
      Calcula y comprueba las relaciones de contraste del texto y de las partes de la interfaz, y aplica los umbrales AA de las WCAG y sus excepciones.
    • Usa el color junto con otras indicaciones
      Asegúrate de que los enlaces, errores, campos obligatorios, gráficos e indicadores de estado no dependan solo del color.
    • Mantén las páginas utilizables al aplicar zoom o ampliar el texto
      Usa unidades relativas y disposiciones flexibles para que las páginas funcionen con un tamaño de texto del 200 %, un zoom del 400 % y el espaciado de texto definido por el usuario, sin perder contenido.
  5. Etiqueta todos los controles, agrupa los relacionados, proporciona instrucciones e información de autocompletado y comunica los errores y mensajes de estado para que todo el mundo pueda completar un formulario.
    • Etiqueta y agrupa todos los controles del formulario
      Asocia etiquetas visibles a los campos de entrada, agrupa los botones de opción y las casillas de verificación, da nombre a los botones y elige tipos de entrada adecuados para los datos.
    • Proporciona instrucciones, señala los campos obligatorios y permite el rellenado automático
      Asocia textos de ayuda a los campos, muestra cuáles son obligatorios, añade identificadores de autocompletado y evita pasos que obliguen a volver a escribir o memorizar información.
    • Comunica con claridad los errores y los mensajes de estado
      Identifica y explica los errores de entrada en texto, asócialos a sus campos y anuncia los mensajes que aparecen sin mover el foco.
  6. Añade ARIA solo donde HTML no ofrezca una solución nativa, mantén sus estados sincronizados y comprueba las páginas con herramientas automáticas y manualmente con teclado, zoom y lector de pantalla.
    • Aplica las reglas de uso de ARIA
      Explica qué cambia ARIA y qué no, prefiere el HTML nativo, evita el uso perjudicial de ARIA y conoce cómo se elige el nombre accesible de un elemento.
    • Comunica los cambios de estado con ARIA
      Usa aria-expanded, aria-current, aria-pressed y aria-hidden correctamente y mantén cada estado sincronizado con lo que muestra la página.
    • Ejecuta comprobaciones automáticas de accesibilidad e interpreta los resultados
      Usa herramientas automáticas para encontrar problemas detectables por máquinas, comprende lo que no pueden evaluar y convierte sus informes en correcciones priorizadas.
    • Realiza pruebas manuales con teclado, zoom y lector de pantalla
      Recorre una página solo con el teclado, comprueba el zoom y la redistribución del contenido, prueba las funciones básicas de un lector de pantalla, inspecciona el árbol de accesibilidad y registra lo que encuentres.

Guía de estudio de Páginas web accesibles

6 capítulos

1

Estructura páginas con HTML semántico

El HTML de una página proporciona a los navegadores y a las tecnologías de apoyo la información que necesitan para describirla y usarla. Empieza por comprender el árbol de accesibilidad y después crea un esquema de página que se pueda recorrer mediante puntos de referencia, encabezados y listas. Elige los enlaces, botones y elementos de tabla según su finalidad y deja que CSS se ocupe de su aspecto. Estas decisiones proporcionan una estructura fiable a todas las funciones posteriores.

1.1 Explica cómo leen una página web las tecnologías de apoyo

Una página accesible permite obtener información y completar tareas con las herramientas que cada persona usa. Estas herramientas pueden incluir un teclado, un lector de pantalla, una lupa o control por voz. Una página puede parecer terminada mientras su código sigue impidiendo que estas personas la usen.

Qué reciben las tecnologías de apoyo

El navegador lee el HTML y construye el DOM, su modelo del documento. A partir de él deriva un árbol de accesibilidad que describe los objetos significativos a las tecnologías de apoyo. Un control necesita un rol, un nombre y los estados o propiedades pertinentes. Por ejemplo, una casilla de verificación puede tener el rol «casilla de verificación», el nombre «Ofertas por correo» y el estado «marcada».

Un lector de pantalla lee el contenido en voz alta o lo envía a una línea braille. NVDA y JAWS funcionan en Windows; Narrator está integrado en Windows, VoiceOver en macOS e iOS y TalkBack en Android. Los lectores de pantalla pueden navegar por encabezados, enlaces y controles sin leer cada línea. Algunos también pueden comunicar los ajustes de fuente o color. Las lupas muestran la página visual ampliada, por lo que la claridad visual también importa.

El control por voz permite decir el nombre de un control, por ejemplo, «haz clic en Buscar». Los dispositivos de pulsadores pueden enviar comandos similares a los del teclado. Por tanto, la compatibilidad con teclado y los nombres precisos ayudan a varios grupos de usuarios, no solo a quienes escuchan la lectura.

Empieza con el elemento adecuado

Compara estas dos formas de crear un control para guardar:

<button type="button">Save</button>
<div class="btn" onclick="save()">Save</div>

El botón ya expone su rol y su nombre. Recibe el foco con Tab y responde a Intro y Espacio. CSS puede hacer que la segunda línea parezca idéntica, pero un div no tiene ninguno de esos comportamientos de botón. Un lector de pantalla puede activar su controlador de clic en modo de lectura, pero no anuncia el elemento como botón. Una persona que navega con Tab no puede llegar a él.

El HTML semántico consiste en elegir un elemento por lo que significa el contenido o el control. Usa CSS para controlar su aspecto. Esto proporciona al navegador un punto de partida sólido y evita tener que reconstruir el comportamiento nativo con scripts.

Conoce el objetivo

El W3C publica las Pautas de Accesibilidad para el Contenido Web, o WCAG. Sus criterios de conformidad son requisitos comprobables, cada uno identificado por un número, un nombre y un nivel. Por ejemplo, 1.4.3 Contraste (mínimo) es de nivel AA. WCAG 2.2 se convirtió en recomendación en octubre de 2023 y se actualizó en diciembre de 2024.

La conformidad con el nivel AA exige todos los criterios de nivel A y de nivel AA. No basta con superar unas pocas comprobaciones de nivel AA. El nivel AAA añade más requisitos. WCAG 2.2 añade nueve criterios a la versión 2.1, seis de nivel A o AA, y elimina el criterio obsoleto 4.1.1 Procesamiento.

La accesibilidad también incluye texto ampliado legible, subtítulos para personas sordas o con dificultades auditivas, instrucciones claras y mensajes de error útiles. Incorporar estas funciones a la página desde el principio evita tener que sustituir HTML inadecuado una vez terminada la disposición.

Puntos clave

  • Elige los elementos HTML por su significado y después aplícales estilos con CSS.
  • El árbol de accesibilidad expone roles, nombres, estados y propiedades.
  • Los botones nativos proporcionan un comportamiento con teclado del que carece un div con estilos.
  • El nivel AA de las WCAG 2.2 exige todos los criterios de conformidad de nivel A y AA.

1.2 Da a cada página una estructura clara y fácil de recorrer

Una estructura de página útil ofrece varias formas de orientarse. Un título descriptivo identifica la página, los puntos de referencia identifican sus regiones y los encabezados revelan el esquema. Estas funciones necesitan significado HTML real, incluso cuando el diseño visual ya parece claro.

Identifica la página y su idioma

Define el idioma principal en el elemento raíz, por ejemplo, <html lang="en-US">. Los lectores de pantalla lo usan para elegir las reglas de pronunciación. Marca un cambio dentro de la página en el elemento correspondiente: <span lang="fr">bon appétit</span>. Esto ayuda a cumplir 3.1.1 Idioma de la página (A) y 3.1.2 Idioma de las partes (AA).

Da a cada página un <title> único y descriptivo. «Pedir una tarta de cumpleaños – Panadería Green Leaf» es más útil en pestañas, marcadores y anuncios de lectores de pantalla que «Panadería Green Leaf – Página 4». Pon primero el tema específico para que los usuarios puedan distinguir rápidamente pestañas similares.

Divide la página en regiones

Usa <main> para el contenido principal, <nav> para la navegación y <aside> para el contenido complementario. Un <header> de página proporciona el punto de referencia banner y un <footer> de página proporciona información sobre el contenido. Los elementos de cabecera y pie anidados dentro de regiones de sección no se convierten en esos puntos de referencia de página.

Usa un solo <main> visible. Si hay dos regiones de navegación, distínguelas con nombres como <nav aria-label="Main"> y <nav aria-label="Breadcrumb">. El rol ya indica «navegación», por lo que la etiqueta puede ser breve. Un <section> o <form> solo se convierte en punto de referencia cuando tiene un nombre accesible.

Crea un esquema antes de elegir tamaños de fuente

Para la página de pedidos de la panadería, un esquema claro podría ser:

<h1>Order a birthday cake</h1>
<h2>Choose a size</h2>
<h2>Choose a flavor</h2>
<h3>Chocolate</h3>
<h3>Lemon</h3>
<h2>Pickup or delivery</h2>

Usa un h1 para el tema principal, h2 para las secciones principales y h3 para sus partes. Evita saltar niveles al descender. Elige los niveles de encabezado según la estructura y ajusta su tamaño con CSS. Un párrafo en negrita no entra en la lista de encabezados del lector de pantalla. A la inversa, envolver una introducción corriente en h2 añade una sección que el contenido no tiene.

Conserva la agrupación y el orden de lectura

Usa <ul> para elementos no ordenados, <ol> para pasos ordenados y <dl> para pares de término y descripción. Los lectores de pantalla pueden anunciar el tamaño de una lista, lo que ayuda a calcular cuánto contenido sigue. Los enlaces de navegación pueden estar en un ul dentro de nav. En Safari, quitar las viñetas con list-style: none puede impedir que VoiceOver anuncie las listas; role="list" en esa lista restablece el anuncio.

Escribe el HTML en un orden de lectura lógico. La propiedad flex order, la dirección flex invertida, la colocación en cuadrícula y el posicionamiento absoluto cambian lo que se ve sin cambiar el orden del DOM. Una fila que visualmente empieza por «Iniciar sesión», pero a la que Tab llega al final, es más difícil de seguir. Corrige el orden del código fuente antes de organizar la disposición.

Trabaja con la estructura básica de una página

El sitio de una panadería tiene un menú principal y un segundo conjunto de enlaces de migas de pan. Da nombres distintos a las regiones y mantén disponibles ambos conjuntos de enlaces:

<nav aria-label="Main">
  <ul><li><a href="/bread">Bread</a></li></ul>
</nav>
<nav aria-label="Breadcrumb">
  <ol><li><a href="/">Home</a></li></ol>
</nav>
<main>
  <h1>Order a loaf</h1>
  <h2>Choose your bread</h2>
</main>

Inspecciona la lista de puntos de referencia: Main y Breadcrumb identifican distintas finalidades de navegación, seguidas del contenido principal. Después inspecciona la lista de encabezados: debe mostrar el tema de la página y su primera sección. Estas dos listas ofrecen distintas rutas por el mismo documento; ninguna depende de los colores del menú ni del tamaño de fuente de los encabezados.

Puntos clave

  • Define el idioma de la página y marca los pasajes en otro idioma.
  • Da a cada página un título específico y una región principal visible.
  • Usa niveles de encabezado reales para expresar el esquema.
  • Usa elementos de lista para grupos de elementos y pasos ordenados.
  • Mantén alineados el orden visual y un orden lógico del código fuente.

1.3 Elige elementos nativos para enlaces, botones, controles y tablas

El elemento de un control indica a los usuarios qué pueden esperar. Un enlace promete un destino; un botón promete una acción. Los controles nativos y los elementos de tabla también proporcionan relaciones que serían difíciles de recrear a partir de cajas genéricas con estilos.

Elige entre navegación y acción
FinalidadHTMLActivación estándar
Ir a otra página, a un archivo o a un lugar de la página<a href="/classes">Baking classes</a>Intro
Realizar una acción en la página actual<button type="button">Show filters</button>Intro o Espacio

Un elemento de anclaje sin href no es un enlace normal que pueda recibir el foco del teclado. Un elemento de anclaje con href="#" y un controlador de clic que abre un menú anuncia navegación aunque realice una acción. Usa un botón para ese menú. Dentro de un formulario, asigna type="button" a los botones que no deban enviarlo; de lo contrario, su comportamiento predeterminado puede enviar el formulario.

Deja claros los destinos

Un lector de pantalla puede reunir los enlaces de la página en una lista. En ella es difícil distinguir enlaces repetidos que dicen «Leer más». «Más información sobre los cursos de masa madre» nombra directamente el destino. WCAG 2.4.4 Propósito de los enlaces (en contexto) (A) permite que el contexto cercano explique un enlace, pero un texto de enlace significativo también funciona cuando se escucha por sí solo.

Informa en el texto del enlace de si se descarga un archivo o se abre una pestaña nueva: «Lista de precios (PDF, 2 MB)» o «Formulario de reserva (se abre en una pestaña nueva)». Una pestaña nueva cambia el funcionamiento del botón Atrás. Usa una descripción en lugar de una URL larga sin descripción cuando sea posible.

Todos los enlaces y botones necesitan un nombre accesible. Un enlace al carrito que solo contiene una imagen necesita texto que indique su destino; una imagen sin alternativa puede dejar un enlace sin nombre o identificado por un nombre de archivo. Darle un nombre es tan necesario como elegir el rol correcto.

Conserva el comportamiento integrado

Usa casillas de verificación, botones de opción y controles select nativos. Incorporan uso con teclado y estados que se anuncian. Un control sencillo para mostrar y ocultar contenido puede usar solo HTML:

<details>
  <summary>Delivery options</summary>
  <p>We deliver within 10 km.</p>
</details>

El resumen recibe el foco del teclado y el control expone su estado abierto o cerrado. Una fila personalizada con un icono triangular necesitaría implementar esas funciones por separado.

Asocia los datos de la tabla a sus encabezados

Usa tablas para datos con relaciones entre filas y columnas. Un título da nombre al conjunto de datos; th identifica los encabezados; scope indica al navegador qué celdas describe un encabezado.

<table>
  <caption>Shop opening hours</caption>
  <tr><th scope="col">Day</th><th scope="col">Opens</th></tr>
  <tr><th scope="row">Saturday</th><td>08:00</td></tr>
</table>

Una persona que llegue a la celda de la hora puede oír el día y el encabezado de columna asociados. Una cuadrícula CSS de elementos div pierde esas relaciones integradas. Para maquetar la página, usa flexbox o cuadrículas; una tabla de maquetación puede crear una navegación por tabla engañosa donde no existe una relación real entre datos.

Puntos clave

  • Usa enlaces para destinos y botones para acciones.
  • Da nombres claros a los enlaces e indica las descargas o las pestañas nuevas.
  • Prefiere los controles nativos y los elementos para mostrar y ocultar contenido por su comportamiento integrado.
  • Usa títulos, celdas de encabezado y scope en las tablas de datos.
  • Usa CSS para organizar la disposición de la página.
2

Proporciona alternativas textuales para el contenido no textual

Las imágenes, los iconos y el contenido multimedia pueden transmitir información que falta en el texto ordinario de la página. Elige cada alternativa según su finalidad: una foto de producto necesita palabras distintas de las de un icono de búsqueda, y un vídeo necesita más que una descripción de imagen. Aprende dónde poner alternativas breves, cuándo se necesita una explicación más larga y cómo los subtítulos para personas sordas, las transcripciones y la audiodescripción permiten distintas formas de usar el contenido multimedia.

2.1 Escribe texto alternativo adecuado para la finalidad de cada imagen

El texto alternativo proporciona la información útil o la función de una imagen a quien no puede verla. Decide qué aporta la imagen en esa página concreta antes de describir su aspecto. Una misma fotografía puede necesitar textos distintos en contextos diferentes.

Elige según la finalidad

Para una fotografía informativa de un producto, alt="Round sourdough loaf with a dark, cracked crust" describe lo que necesita saber un comprador. En una página sobre fallos de horneado, la característica importante podría ser una corteza quemada. Imagina que lees la página por teléfono: incluye la información que de otro modo quien escucha se perdería.

Para una imagen que solo aporta decoración, usa alt="". Una alternativa vacía indica a los lectores de pantalla que omitan la imagen. Omitir el atributo es distinto: un lector de pantalla puede anunciar un nombre de archivo como «IMG guion bajo 4032 punto jpg». Un fondo puramente decorativo también puede ponerse en CSS.

Nombra una función, no una forma

Cuando una imagen es el único contenido de un enlace o botón, su alternativa proporciona el nombre del control. Un enlace al inicio puede ser:

<a href="/">
  <img src="logo.svg" alt="Green Leaf Bakery home">
</a>

Para un botón de búsqueda, usa «Buscar», no «Lupa». El usuario necesita saber qué hará el control al pulsarlo. Si un enlace de producto ya contiene las palabras visibles «Pan de centeno», una foto en ese mismo enlace puede usar alt="" para que el nombre del enlace no se repita.

Trata el texto y los gráficos complejos

Una imagen de texto necesita las mismas palabras en su alternativa. Una imagen promocional que dice «Rebajas de verano: 20 % de descuento en todo el pan» necesita esas palabras, no «Imagen de rebajas». Prefiere texto HTML real con estilos CSS cuando sea posible. Puede cambiar de tamaño, traducirse y redistribuirse; WCAG 1.4.5 Imágenes de texto (AA) exige texto real cuando la tecnología lo permite, con excepciones como los logotipos.

Un gráfico, diagrama o mapa suele contener demasiada información para una alternativa breve. Dale una identificación breve y después proporciona una descripción más completa cerca. Por ejemplo, alt="Bar chart of monthly website visitors, January to June" identifica el gráfico. El texto cercano puede explicar que las visitas aumentaron de 1200 a 3000, mientras que una tabla de datos proporciona los valores individuales cuando se necesitan. Un <figure> con <figcaption> puede agrupar el gráfico y su explicación.

Revisa los detalles útiles

Mantén el texto alternativo habitual en una frase u oración concisa. Los lectores de pantalla ya identifican una imagen, por lo que empezar con «Imagen de» normalmente no añade contenido útil. Elimina las palabras repetidas del texto adyacente y las palabras clave de búsqueda que no ayudan a comprender la página.

WCAG 1.1.1 Contenido no textual (A) exige una finalidad equivalente, no una descripción de cada detalle visible. El atributo title no es un sustituto fiable: no siempre se anuncia ni está disponible al usar teclado o interacción táctil. Pon la alternativa de una imagen en alt y mantén cualquier explicación más larga en la propia página.

Puntos clave

  • Escribe el texto alternativo según la finalidad de la imagen en el contexto de su página.
  • Usa alt="" para la decoración; no omitas el atributo.
  • Las imágenes funcionales nombran la acción o el destino.
  • Usa texto o datos cercanos para las imágenes complejas.
  • Prefiere texto HTML real a imágenes de texto.

2.2 Asigna nombres a los iconos y gráficos SVG y proporciona alternativas textuales al contenido multimedia

Un icono, un diagrama y un vídeo necesitan distintos tipos de alternativas. Empieza por identificar la información o la acción que aporta cada uno. Después coloca el equivalente donde tanto el navegador como la persona que usa la página puedan encontrarlo.

Da nombre al control que contiene el icono

El texto visible junto a un icono suele ser lo más claro. Si un botón debe contener solo un icono, proporciona texto oculto visualmente o una etiqueta en el botón:

<button type="button" aria-label="Close">✕</button>

Cuando un icono esté junto al texto visible de un botón, oculta el icono decorativo con aria-hidden="true". No ocultes todo el botón. Un span o div simple tiene un rol genérico al que está prohibido asignar un nombre; poner ahí aria-label no es una forma fiable de dar nombre a un icono.

El texto oculto visualmente sigue estando disponible para los lectores de pantalla. Una clase CSS reutilizable puede usar posicionamiento absoluto, un ancho y alto de 1 px, desbordamiento oculto, clip-path: inset(50%) y white-space: nowrap. A diferencia de display: none o visibility: hidden, mantiene el texto en el árbol de accesibilidad.

Para un SVG en línea que transmite significado, usa role="img" y un nombre, por ejemplo, aria-labelledby="rating-title", que hace referencia a <title id="rating-title">Rated 4 out of 5 stars</title> dentro de él. Un SVG decorativo usa aria-hidden="true". Un SVG cargado mediante img obtiene su alternativa de alt, como otras imágenes. Mantén las advertencias significativas en HTML; los fondos CSS y el contenido generado no son lugares fiables para información esencial.

Elige la alternativa adecuada para el contenido multimedia
ContenidoAlternativa necesaria
Grabación solo de audioTranscripción
Vídeo pregrabado con sonidoSubtítulos para personas sordas; audiodescripción para información visual importante que no se menciona en el audio, en el nivel AA
Vídeo en directo con sonidoSubtítulos para personas sordas en directo, en el nivel AA

Los subtítulos para personas sordas sincronizan con el vídeo el habla, los sonidos importantes y la identificación de los hablantes. Los subtítulos transcriben o traducen el diálogo para personas que pueden oír pero necesitan ayuda para entender el idioma. Una transcripción es un relato textual independiente; no sigue el tiempo de reproducción.

<video controls src="bread.mp4">
  <track kind="captions" src="bread-en.vtt"
         srclang="en" label="English">
</video>

El archivo WebVTT contiene señales de texto temporizadas, como 00:00:01.000 --> 00:00:04.000, seguidas del texto del subtítulo. Comprueba los nombres, las palabras técnicas y la puntuación de los subtítulos automáticos antes de publicar.

Si una demostración muestra en silencio un ajuste del horno, los subtítulos del habla no lo transmiten. La audiodescripción narra la información visual importante en las pausas o en una versión audiodescrita. Una alternativa textual completa que incluya la información visual es una opción en el nivel A; el vídeo pregrabado necesita audiodescripción en el nivel AA según 1.2.5.

Mantén utilizable la reproducción

Usa controls nativo en audio y vídeo, y da a los marcos insertados un title descriptivo, como «Mapa de la ubicación de nuestra tienda». Evita el sonido que se reproduce automáticamente. El audio que empieza automáticamente y dura más de 3 segundos necesita controles para pausarlo, detenerlo o ajustar su volumen independientemente del volumen general del sistema.

Asocia el nombre oculto y el texto temporizado

Para un botón compacto de eliminación, mantén sus palabras en el documento:

<button type="button">
  <img src="trash.svg" alt="">
  <span class="visually-hidden">Delete item</span>
</button>

La imagen se omite porque el texto ya indica la acción. Aplica la clase de ocultación sin eliminar ese texto del árbol de accesibilidad:

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

En cambio, un archivo de subtítulos asocia las palabras al tiempo de reproducción. Un breve ejemplo de WebVTT es:

WEBVTT

00:00:01.000 --> 00:00:03.000
[Mixer whirring]

00:00:03.000 --> 00:00:06.000
Today we bake rye bread.

La primera señal transmite un sonido relevante sin diálogo. La segunda transmite el habla durante su propio intervalo. Mira el vídeo con la pista activada y comprueba que cada señal aparece cuando se produce su sonido.

Puntos clave

  • Da nombre a los controles con iconos en el propio control.
  • El texto oculto visualmente sigue disponible para las tecnologías de apoyo.
  • Da un rol y un nombre a los gráficos SVG que transmiten significado.
  • Los subtítulos para personas sordas incluyen el habla y los sonidos importantes; las transcripciones permiten acceder a las grabaciones solo de audio.
  • La audiodescripción proporciona información visual importante que falta en la pista de audio de un vídeo.
  • Mantén disponibles los controles del reproductor y da nombre a los marcos insertados.
3

Haz que todas las funciones se puedan usar con el teclado

El uso con teclado depende de un recorrido claro por la página y de una posición actual visible. Trabaja con controles nativos, mantén un orden lógico e impide que el foco llegue a contenido invisible. Añade accesos para saltar la navegación repetida y conserva el lugar del usuario cuando se abra un cuadro de diálogo o desaparezca un elemento. Comprueba el tamaño de los controles y la visibilidad del foco para que la misma interfaz sea más fácil de usar de varias formas.

3.1 Usa una página con el teclado siguiendo un orden de foco lógico

Quienes usan el teclado necesitan un recorrido para toda la tarea: llegar a un control, reconocerlo, usarlo y continuar. Los controles HTML estándar ya permiten este recorrido. Los problemas suelen aparecer cuando los estilos o los controles personalizados interfieren con el comportamiento del navegador.

Usa las teclas esperadas

Tab avanza por los elementos interactivos; Mayús+Tab retrocede. Intro sigue enlaces y activa botones. Espacio activa botones y cambia el estado de las casillas de verificación. En un grupo de botones de opción, Tab entra o sale del grupo y las teclas de flecha se mueven entre las opciones. Las teclas de flecha también funcionan en los controles de selección nativos. Escape cierra cuadros de diálogo y muchos menús.

Los enlaces con href, los botones, los campos de entrada, los controles de selección, las áreas de texto, los resúmenes y los elementos multimedia con controles pueden recibir el foco de forma predeterminada. Los párrafos, encabezados, imágenes, contenedores genéricos y elementos de anclaje sin href no son paradas normales de Tab. Un lector de pantalla tiene comandos de lectura independientes para el texto, por lo que añadir cada encabezado a la secuencia de Tab ralentiza la navegación con teclado.

En macOS, activa la navegación con teclado para hacer pruebas. La opción «Pulsar Tab para resaltar cada elemento de una página web» de Safari controla si la navegación normal con Tab llega a los enlaces; Opción+Tab puede llegar a ellos cuando esa opción está desactivada.

Mantén sencillos los valores de tabindex
ValorEfecto
tabindex="0"Añade una parada de Tab según el orden del código fuente
tabindex="-1"Permite recibir el foco mediante un script o como destino de un enlace; Tab lo omite
Un valor positivoMueve una parada antes de los controles normales según el número

Los valores positivos son difíciles de mantener porque crean un segundo sistema de ordenación. Escribe el HTML en un orden lógico y evítalos. Un encabezado que deba recibir el foco después de una actualización puede usar -1 sin convertirse en una parada cada vez que se recorre la página.

Comprueba juntos el significado y el comportamiento
<div role="button" tabindex="0">Save</div>

Esto expone un rol de botón y recibe el foco, pero sigue necesitando un script para Intro y Espacio, una acción y un estilo de foco visible. Sustituirlo por <button type="button">Save</button> proporciona activación nativa con teclado sin tener que reconstruirla. ARIA por sí solo no puede crear la interacción.

CSS también puede alterar la navegación. Si el orden del código fuente es logotipo, menú, búsqueda y enlace de inicio de sesión, order: -1 de CSS puede mostrar el inicio de sesión primero mientras Tab sigue llegando a él al final. Mueve el contenido en el HTML cuando sea necesario cambiar el orden de lectura. WCAG 2.4.3 Orden del foco (A) exige un orden que preserve el significado y la capacidad de uso.

Elimina las trampas y las paradas ocultas

Comprueba si el foco puede salir de todos los componentes mediante el teclado. Un mapa o reproductor que acepta el foco pero no ofrece una salida con teclado crea una trampa de teclado, prohibida por 2.1.2 Sin trampas de teclado (A).

Un menú cerrado desplazado fuera de la pantalla o al que se ha aplicado opacity: 0 puede seguir conteniendo enlaces que reciben el foco. Usa hidden, display: none o inert para el contenido que no debe estar disponible mientras está cerrado. Sin embargo, permite que un enlace de salto fuera de la pantalla reciba el foco: tiene una regla intencionada que lo hace visible al recibirlo.

Puntos clave

  • Usa el comportamiento estándar del teclado para enlaces y controles nativos.
  • Reserva las paradas de Tab para el contenido interactivo.
  • Usa cero para paradas según el orden del código fuente y menos uno para gestionar el foco de forma intencionada.
  • Evita los valores positivos de tabindex y los cambios de orden visual que confundan la navegación.
  • Comprueba que no haya trampas de teclado ni que el foco llegue a contenido oculto.

3.2 Muestra el foco con claridad y facilita la activación de los controles

El foco es la posición actual de quien usa el teclado. Un anillo visible indica qué control activará Intro o Espacio. El anillo debe seguir siendo visible frente a la página y el control con foco debe permanecer a la vista.

Mantén un indicador claro

Los navegadores proporcionan un contorno de foco predeterminado. Eliminarlo con outline: none hace perder una indicación esencial, salvo que se proporcione un sustituto adecuado. Usa :focus-visible para mostrar un anillo cuando el navegador considere que es útil, incluida la navegación con teclado y los campos de texto:

:focus-visible {
  outline: 3px solid #1A73E8;
  outline-offset: 2px;
}

El azul tiene un contraste de 4,51:1 frente al blanco. Comprueba los colores adyacentes reales del diseño; un anillo que funciona sobre blanco puede confundirse con un panel azul. WCAG 2.4.7 Foco visible (AA) exige un foco de teclado visible, mientras que 1.4.11 Contraste no textual (AA) se aplica a la información visual que identifica un estado personalizado, incluido un indicador de foco personalizado, con una relación de 3:1.

Un contorno es una opción útil para los temas de contraste de Windows. Los colores forzados pueden sustituir los fondos y eliminar las sombras de caja, mientras que los contornos siguen disponibles. Por tanto, una sombra por sí sola puede desaparecer en un modo del que depende una persona.

Mantén a la vista el control con foco

Las cabeceras adhesivas, los avisos y los controles de chat pueden cubrir el foco. Según 2.4.11 Foco no oculto (mínimo) (AA), el contenido creado por el autor no debe ocultar completamente el componente con foco. Mantener visible todo el componente facilita su uso; el requisito de que ninguna parte quede oculta pertenece al nivel AAA.

Para una cabecera adhesiva de 5 rem de alto, deja espacio de desplazamiento:

html { scroll-padding-top: 5rem; }

Después recorre la página real con Tab. Comprueba ambas direcciones y prueba cuando haya un aviso de cookies. La regla CSS es un punto de partida; debe funcionar con la cabecera y los tamaños del área de visualización reales de la página.

Da también espacio a quienes usan el puntero

Tamaño del área de activación (mínimo), 2.5.8 (AA), exige áreas de activación del puntero de al menos 24 por 24 px CSS, con excepciones. Un área menor puede cumplir si un círculo de 24 px de diámetro centrado en ella no se cruza con otra área de activación ni con el círculo de otra área pequeña. También están exentos los enlaces dentro de una frase, los controles cuyo tamaño predeterminado del navegador no se ha modificado y las áreas que tienen un control equivalente que cumple el criterio en la página. Una presentación esencial o exigida por ley también puede estar exenta.

En el caso de tres botones con iconos de 16 por 16 px separados por espacios de 4 px, los círculos se solaparían. Añadir 4 px de relleno en todos los lados hace que cada área de activación mida 24 por 24 px. Mide toda el área sobre la que se puede hacer clic, no solo el icono dibujado dentro de ella.

El área de activación de 44 por 44 px CSS del criterio 2.5.5 y el requisito de tamaño del área de foco del criterio 2.4.13 son requisitos AAA. Son mejoras útiles, pero mantén su nivel separado del mínimo AA al comunicar un hallazgo.

Puntos clave

  • Mantén un indicador de foco visible en cada elemento que se pueda usar con el teclado.
  • Comprueba el contraste de los indicadores personalizados frente a los colores adyacentes.
  • Evita que el contenido adhesivo oculte completamente el componente con foco.
  • Mide toda el área de activación del puntero; el nivel AA normalmente exige 24 por 24 px CSS o una excepción aplicable.

3.3 Añade enlaces de salto y gestiona el foco cuando cambie el contenido

Los menús repetidos no deberían obligar a las personas a repetir el mismo recorrido en cada página. Un enlace de salto proporciona una ruta corta al contenido principal. Cuando una interacción cambia la página, gestionar el foco de forma intencionada también ayuda a mantener el lugar.

Crea y prueba un enlace de salto

Coloca el enlace de salto antes de los controles repetidos de la cabecera:

<a class="skip-link" href="#main">Skip to main content</a>
<main id="main" tabindex="-1">
  <h1>Order a birthday cake</h1>
</main>

El enlace apunta a la región principal, y tabindex="-1" ayuda a que esa región reciba el foco sin añadir una parada normal de Tab. La navegación por puntos de referencia ayuda a quienes usan lectores de pantalla; el enlace de salto también ayuda a quienes usan el teclado y ven la pantalla a evitar bloques repetidos, según 2.4.1 Evitar bloques (A).

Mantén el enlace disponible para el teclado cuando esté oculto visualmente:

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; }

No uses display: none ni visibility: hidden, que impiden que reciba el foco. Vuelve a cargar la página, pulsa Tab una vez y comprueba que aparece el enlace. Pulsa Intro y luego Tab de nuevo: la navegación debe continuar en el primer enlace o control del contenido principal, no en el menú de la cabecera.

Elige una posición siguiente lógica cuando cambie el contenido

Si una fila del carrito y su botón Eliminar con foco desaparecen juntos, el foco puede volver al principio de la página. Muévelo de forma intencionada al botón Eliminar del siguiente artículo o a un encabezado del carrito que tenga tabindex="-1". Elige un lugar que permita continuar la tarea. Desplazarse hasta una región no garantiza por sí solo que el foco del teclado se haya movido allí.

Usa un cuadro de diálogo modal nativo

Un cuadro de diálogo abierto con showModal() mueve el foco a su interior y vuelve inerte el resto de la página. Tab permanece dentro mientras el cuadro está abierto; Escape lo cierra. Al cerrarse, el foco normalmente vuelve al elemento que lo abrió, si este sigue existiendo.

<button type="button"
  onclick="document.getElementById('hours').showModal()">Opening hours</button>
<dialog id="hours" aria-labelledby="hours-title">
  <h2 id="hours-title">Opening hours</h2>
  <p>Tuesday to Saturday, 08:00–17:00.</p>
  <form method="dialog"><button>Close</button></form>
</dialog>

El script de una línea encuentra el cuadro de diálogo por su ID y lo abre de forma modal. El formulario del cuadro lo cierra sin otro script. Su encabezado proporciona su nombre. Una capa superpuesta hecha a mano necesita que se recreen todas estas reglas de interacción; oscurecer el fondo no impide que el foco del teclado llegue a él.

Espera una acción intencionada

Recibir el foco no debe abrir una página nueva ni cambiar el contexto de otro modo. Cambiar una selección tampoco debe hacerlo de forma inesperada; se debe avisar a los usuarios de antemano si ocurre ese comportamiento. Un botón «Ir» después de un selector de destino da tiempo para revisar y cambiar la selección antes de navegar. Estos comportamientos ayudan a cumplir 3.2.1 Al recibir el foco (A) y 3.2.2 Al recibir entradas (A).

Puntos clave

  • Haz que el enlace de salto sea el primer elemento que pueda recibir el foco y muéstralo al recibirlo.
  • Comprueba adónde va la siguiente pulsación de Tab después de usar el enlace de salto.
  • Mueve el foco de forma intencionada cuando se elimine un elemento que lo tiene.
  • Usa dialog con showModal() para obtener el comportamiento modal nativo.
  • Evita cambios de contexto inesperados al recibir el foco o cambiar una selección.
4

Mantén legibles el texto y los elementos visuales

Las personas necesitan leer y usar una página en distintas condiciones de visualización. Mide los colores de primer plano y de fondo, combina el color con otra indicación y crea disposiciones que se amplíen cuando crezca el texto. Una vista legible en escritorio es solo el punto de partida: el texto ampliado, la redistribución en espacios estrechos y el espaciado del usuario pueden revelar problemas ocultos. Las comprobaciones de esta sección relacionan requisitos visuales concretos con cambios prácticos en CSS.

4.1 Mide el contraste de color y cumple los requisitos

El contraste mide con qué claridad destaca la información de primer plano frente a su fondo. Un color que parece legible en una pantalla puede resultar difícil de ver para una persona con baja visión o bajo una luz intensa. Mide la pareja de colores en lugar de evaluarla a simple vista.

Aplica el mínimo correcto
Qué se compruebaMínimo AA de las WCAG
Texto normal4,5:1
Texto grande3:1
Información visual que identifica un control, su estado o un gráfico significativo3:1 frente a los colores adyacentes

El texto grande tiene al menos 18 puntos, equivalentes a 24 px CSS, o al menos 14 puntos en negrita, unos 18,7 px CSS en negrita. Un encabezado de 20 px con grosor normal sigue necesitando 4,5:1. El texto de marcador de posición, del pie de página y de los estados de puntero encima y de foco no está exento del contraste de texto. Hay excepciones para logotipos, controles inactivos y texto incidental o puramente decorativo.

Comprende la relación

La luminancia relativa expresa la luminosidad en una escala de 0 para el negro a 1 para el blanco. Con la luminancia más clara como L1 y la más oscura como L2, la relación es:

L1+0,05L2+0,05

Los extremos son 1:1 para colores idénticos y 21:1 para negro frente a blanco. Una herramienta de comprobación de contraste calcula la luminancia a partir de los canales de color y compara la relación con el umbral correspondiente.

Para el gris #767676, cada canal es el valor hexadecimal 76, o 118. Divide entre 255 para obtener aproximadamente 0,4627. Como está por encima de 0,04045, conviértelo a luz lineal:

(0,4627+0,0551,055)2,4≈0,1812

Los tres canales son iguales, por lo que su luminancia ponderada también es aproximadamente 0,1812. El blanco tiene una luminancia de 1. Mantener toda la precisión durante el cálculo da 4,54:1, que cumple el requisito para texto normal. Usa una herramienta para las parejas de colores reales, de modo que los valores intermedios redondeados no afecten a un resultado cercano al umbral.

Nunca redondees un fallo hasta convertirlo en un resultado conforme

El gris #777777 sobre blanco da 4,48:1. Mostrarlo con un decimal como 4,5 no hace que cumpla el requisito. Del mismo modo, #949494 sobre blanco da 3,03:1 y cumple para texto grande; #959595 da 2,99:1 y no cumple para texto grande.

El blanco sobre #0066CC da 5,57:1. Sobre el ámbar #FFC107, el texto blanco solo da 1,63:1, mientras que el negro da 12,88:1. Elegir un fondo de botón brillante no indica si su texto debe ser claro u oscuro.

Comprueba los límites y todos los fondos

Un borde de campo necesario para identificarlo debe cumplir el contraste no textual. #CCCCCC frente al blanco da 1,61:1 y no cumple; #949494 da 3,03:1 y sí cumple. La misma regla de 3:1 se aplica a iconos significativos, líneas de gráficos e indicadores de foco personalizados. Hay excepciones para controles inactivos y controles predeterminados del navegador sin modificar.

El texto sobre una fotografía o un degradado debe cumplir el requisito en el punto más débil de su fondo. Añade un panel sólido o suficientemente opaco, o mueve el texto. Comprueba los colores resultantes con las herramientas de desarrollo o una herramienta de comprobación de contraste. WCAG 1.4.3 cubre el texto y 1.4.11 cubre la información no textual; los umbrales AAA para texto son más altos: 7:1 para texto normal y 4,5:1 para texto grande.

Comprueba por separado las partes de un botón

Supongamos que un botón tiene texto blanco de tamaño normal sobre #0066CC, está en una página blanca y usa un anillo de foco personalizado #CCCCCC. Comprueba cada relación:

  1. La etiqueta frente al botón azul da 5,57:1, por encima del mínimo de 4,5:1 para texto.
  2. El botón azul frente a la página blanca también da 5,57:1, por lo que su límite se distingue.
  3. El anillo de foco gris claro frente a la página blanca solo da 1,61:1. Ese indicador de estado no cumple el requisito aunque la etiqueta sí lo cumpla.

Sustituye el anillo por un color que alcance 3:1 frente a su fondo adyacente y vuelve a medir. Una medición de la etiqueta del botón no mide también todos los límites o estados de interacción. Comprueba el texto, el componente y el estado personalizado como parejas de colores separadas.

Puntos clave

  • En el nivel AA, el texto normal necesita 4,5:1 y el texto grande 3:1.
  • El texto grande se define por su tamaño y grosor, no por su rol de encabezado.
  • Nunca redondees un resultado al alza para alcanzar un umbral de conformidad.
  • Los límites y estados importantes de los controles y los gráficos necesitan 3:1 frente a los colores adyacentes.
  • Comprueba el texto sobre imágenes en el punto más débil del fondo.
  • Usa una herramienta de comprobación de contraste para medir la pareja de colores real.

4.2 Usa el color junto con otras indicaciones

El color puede llamar la atención, pero no puede ser la única pista visible de significado. Las personas pueden tener una deficiencia de la visión del color, usar escala de grises o ajustes de contraste, o escuchar el contenido mediante un lector de pantalla que no anuncia los colores. Combina el color con texto, formas, patrones u otra indicación clara.

Separa dos comprobaciones

El contraste pregunta si un primer plano se distingue de su fondo. El uso del color, WCAG 1.4.1 (A), pregunta si la información sigue siendo comprensible sin reconocer el color. Una etiqueta de color rojo oscuro sobre blanco podría cumplir el contraste y aun así no explicar qué campo tiene un error.

Empieza por el mensaje. Si la página dice «Elige una opción verde», da también a cada opción un nombre útil. Si un punto rojo significa que una tienda está cerrada, añade «Cerrado ahora» a su lado. El texto transmite el estado, mientras que el color ayuda a que se vea.

Mantén reconocibles los enlaces

La forma más sencilla de identificar un enlace en un párrafo es el subrayado. Ofrece una indicación incluso cuando el enlace y el texto que lo rodea se ven en escala de grises.

Una diferencia basada solo en el color respecto al texto circundante necesita al menos 3:1 de contraste entre los dos colores de texto y una indicación adicional, como un subrayado, al situar el puntero encima y al recibir el foco. El texto del enlace también debe cumplir el contraste de texto frente a su fondo. Son comparaciones distintas; un azul que cumple frente al blanco puede ser demasiado parecido al texto oscuro del párrafo que lo rodea.

Explica los errores y los campos obligatorios

Para un error de correo electrónico, muestra «Error: introduce una dirección de correo electrónico con el formato nombre@ejemplo.com» junto al campo. Un contorno rojo puede permanecer como indicación adicional. El texto identifica el problema e indica al usuario cómo corregirlo, mientras que el código lo asocia al campo.

Para los campos obligatorios, usa una etiqueta como «Dirección de correo electrónico (obligatorio)». Un asterisco también funciona cuando al principio del formulario se explica que «* significa obligatorio». Añade el atributo nativo required para que el requisito esté disponible para las tecnologías de apoyo y la validación del navegador. El texto rojo de una etiqueta por sí solo no proporciona una explicación visual adecuada ni un requisito expresado en el código.

Da a los gráficos una segunda forma de comunicar

Un gráfico de ventas con dos series necesita algo más que una línea roja y una verde. Las etiquetas directas, los distintos estilos de línea o los patrones permiten seguir cada serie sin identificar su color. Usa estas indicaciones tanto en el gráfico como en su leyenda para que coincidan.

Comprueba la página con la emulación de escala de grises o de visión del color en las herramientas de desarrollo. Inspecciona los enlaces dentro del texto, los errores, los campos obligatorios, los gráficos y los indicadores de disponibilidad. Pregúntate qué pista visible queda para cada distinción. Si una distinción desaparece, añade una indicación que exprese o represente su significado; aumentar solo la saturación no proporcionará la información que falta.

Puntos clave

  • Combina las diferencias de color significativas con otra indicación visible.
  • Comprueba por separado el contraste y el uso del color.
  • Subraya los enlaces o cumple tanto las condiciones de diferencia de color como las de indicación al interactuar.
  • Usa texto para los errores, los campos obligatorios y los indicadores de estado.

4.3 Mantén las páginas utilizables al aplicar zoom o ampliar el texto

Ampliar una página debería facilitar su uso sin ocultar controles ni cortar frases. Las personas pueden aplicar zoom a toda la página, ampliar solo el texto o aplicar su propio espaciado. Las disposiciones flexibles permiten que estas opciones funcionen juntas.

Prueba el tamaño del texto y la redistribución

WCAG 1.4.4 Cambio de tamaño del texto (AA) exige que el texto se amplíe hasta el 200 % sin pérdida de contenido ni funcionalidad. El zoom del navegador usa Ctrl y más en Windows o Cmd y más en macOS. Prueba también un tamaño de fuente predeterminado mayor, que cambia el texto sin ampliar todo lo demás de la misma forma.

WCAG 1.4.10 Redistribución del contenido (AA) exige que el contenido ordinario funcione con un ancho de 320 px CSS sin desplazamiento en dos direcciones. Una ventana de 1280 px CSS de ancho con un zoom del 400 % proporciona ese ancho efectivo. Los párrafos deben ajustarse en una columna estrecha, con todas las funciones disponibles. Hay excepciones para tablas de datos, mapas y otros contenidos cuyo significado necesita dos dimensiones.

Deja que la disposición crezca con el texto

Usa unidades de fuente relativas como rem y em para que el texto siga el ajuste de fuente predeterminado del usuario. El texto en píxeles CSS sigue respondiendo al zoom del navegador, pero no sigue ese ajuste predeterminado de la misma manera. Los contenedores flexibles y max-width permiten que las líneas se ajusten; los puntos de ruptura en em pueden adaptarse a medida que crece el texto.

Una altura fija puede cortar contenido sin que sea evidente:

/* Problem when larger text needs more space */
.card { height: 200px; overflow: hidden; }

/* Content can grow beyond the minimum */
.card { min-height: 200px; }

Deja que el contenido determine su altura. Con anchos reducidos, apila la navegación u ofrece un control accesible para mostrarla y ocultarla en lugar de eliminar enlaces. Deja que una cabecera adhesiva demasiado grande se desplace fuera de la pantalla si consume demasiado espacio de la vista utilizable.

Mantén disponible el zoom en móviles

Usa una declaración del área de visualización que siga el ancho del dispositivo:

<meta name="viewport" content="width=device-width, initial-scale=1">

No añadas maximum-scale=1 ni user-scalable=no. Intentan bloquear el zoom mediante el gesto de pellizco, que las personas con baja visión pueden necesitar. Algunos navegadores ignoran esas restricciones, pero los usuarios no deberían tener que depender de ese comportamiento.

Aplica el espaciado del usuario

WCAG 1.4.12 Espaciado del texto (AA) exige que no haya pérdida de contenido ni solapamientos cuando los usuarios establecen la altura de línea en 1,5 veces el tamaño de fuente, el espaciado entre párrafos en 2 veces, el espaciado entre letras en 0,12 veces y el espaciado entre palabras en 0,16 veces. Son ajustes de prueba, no valores de diseño predeterminados obligatorios. Usa una herramienta de espaciado del texto y comprueba etiquetas, tarjetas, menús y botones, además de los párrafos.

Una comprobación práctica combina una prueba de texto al 200 %, una prueba de redistribución a 320 px CSS y la modificación del espaciado. Busca líneas cortadas, etiquetas solapadas, desplazamiento horizontal de párrafos y funciones que hayan desaparecido. Corrige el contenedor o la disposición que causa el problema; reducir el texto que el usuario ha ampliado elimina el beneficio que buscaba.

Puntos clave

  • Mantén disponibles el texto y las funciones con una ampliación del 200 %.
  • Comprueba la redistribución del contenido ordinario con un ancho de 320 px CSS.
  • Usa tamaños de fuente relativos y contenedores que puedan crecer.
  • Permite el zoom mediante el gesto de pellizco y conserva las funciones en disposiciones estrechas.
  • Comprueba que las modificaciones del espaciado del texto por el usuario no causen cortes ni solapamientos.
5

Crea formularios accesibles

Un formulario accesible explica qué introducir, facilita la identificación de cada control y ayuda a recuperarse de los errores. Asocia etiquetas e instrucciones visibles en HTML, usa las funciones de entrada y rellenado automático del navegador y conserva las respuestas durante todo el proceso. Cuando aparezca un mensaje, decide si el foco debe desplazarse a él o si un anuncio puede permitir que el usuario siga trabajando donde estaba.

5.1 Etiqueta y agrupa todos los controles del formulario

Una etiqueta visible indica qué debe introducir una persona y da al campo un nombre accesible. Las etiquetas de grupo añaden la pregunta a la que responden varias opciones. Las asociaciones deben existir en el HTML, incluso cuando las etiquetas y los campos ya aparecen cerca unos de otros.

Asocia una etiqueta a un control

Una etiqueta explícita usa for para hacer referencia al id único del control:

<label for="email">Email address</label>
<input id="email" name="email" type="email">

El navegador puede anunciar «Email address» cuando el campo recibe el foco. Hacer clic en el texto también da el foco al campo, lo que proporciona a los usuarios un área de activación mayor. El atributo name identifica los datos enviados; no sustituye al id que usa la etiqueta.

Una etiqueta implícita envuelve su campo de entrada: <label>Email address <input type="email" name="email"></label>. Esto funciona cuando ambos caben dentro del mismo elemento de etiqueta. Con contenedores de disposición separados, la asociación explícita es más fácil de mantener.

Un texto de marcador de posición desaparece al escribir y suele tener poco contraste. Mantén visible la etiqueta y coloca cerca los ejemplos o las indicaciones de formato. «Campo 1» es técnicamente un nombre, pero no describe la finalidad. WCAG 2.4.6 Encabezados y etiquetas (AA) exige una redacción descriptiva.

Conserva las palabras visibles en el nombre

Una persona que usa control por voz puede decir «haz clic en Enviar» después de ver un botón Enviar. Si aria-label="Submit form" prevalece sobre el texto de ese botón, su nombre accesible deja de contener las palabras visibles. WCAG 2.5.3 Etiqueta en el nombre (A) exige que se incluyan esas palabras, preferiblemente al principio. Usa el propio texto visible cuando sea posible: <button type="submit">Send message</button>.

Un campo de búsqueda aislado puede tener una etiqueta oculta visualmente si un botón Buscar cercano deja clara su finalidad visualmente. Las etiquetas ocultas no son un sustituto general de las instrucciones visibles en todo un formulario.

Agrupa las opciones bajo su pregunta
<fieldset>
  <legend>Delivery method</legend>
  <input type="radio" id="pickup" name="delivery" value="pickup">
  <label for="pickup">Pick up in store</label>
  <input type="radio" id="courier" name="delivery" value="courier">
  <label for="courier">Courier delivery</label>
</fieldset>

La leyenda proporciona la pregunta del grupo; cada botón de opción sigue necesitando su propia etiqueta. Los lectores de pantalla pueden anunciar el contexto del grupo junto con una opción. Usa el mismo name para opciones excluyentes y leyendas breves que sigan siendo útiles cuando se repitan. Las casillas de verificación relacionadas también pueden usar un fieldset y una legend.

Elige los tipos y comprueba las asociaciones

Usa email, tel, url y date para los datos correspondientes. Los tipos de correo electrónico y URL proporcionan una comprobación de formato; los campos de teléfono pueden ofrecer un teclado móvil adecuado, pero no validan los formatos de número de teléfono. Usa number para cantidades como el número de invitados, no para identificadores como números de teléfono o de tarjeta.

Haz clic en cada etiqueta para comprobar su asociación. Si el campo equivocado recibe el foco, busca ID duplicados o un for que no coincida. Inspecciona también el nombre calculado en las herramientas de desarrollo; la proximidad visual por sí sola no puede asociar una etiqueta.

Puntos clave

  • Asocia cada etiqueta al ID único de un campo o haz que envuelva su único control.
  • Mantén visibles las etiquetas; usa los textos de marcador de posición solo como contenido complementario.
  • Mantén el texto visible de la etiqueta dentro del nombre accesible.
  • Usa fieldset y legend para un grupo de opciones relacionadas.
  • Elige los tipos de entrada según el tipo de datos y comprueba las asociaciones de las etiquetas.

5.2 Proporciona instrucciones, señala los campos obligatorios y permite el rellenado automático

Las instrucciones ayudan más cuando llegan antes de que se produzca un error. Un buen formulario explica qué datos se esperan, muestra qué campos son obligatorios y admite las herramientas del navegador para introducir información personal. También evita que los usuarios repitan trabajo innecesariamente.

Asocia un texto de ayuda sin sustituir la etiqueta
<label for="pw">Password (required)</label>
<input id="pw" type="password" required
       autocomplete="new-password" aria-describedby="pw-hint">
<p id="pw-hint">At least 12 characters.</p>

La etiqueta da nombre al campo. El párrafo visible explica su requisito y aria-describedby añade ese texto como descripción. Los lectores de pantalla pueden anunciarlo después del nombre. Para varias descripciones, enumera sus ID separados por espacios, como en aria-describedby="pw-hint pw-error".

Marca los campos obligatorios visualmente y con required. Puedes escribir «(obligatorio)» o explicar un asterisco al principio del formulario. El atributo nativo required permite la validación del navegador e informa a las tecnologías de apoyo; no necesita un aria-required="true" adicional.

Identifica la finalidad de los datos personales

Según 1.3.5 Identificar el propósito de la entrada (AA), los campos que recogen información del usuario necesitan identificadores de autocomplete adecuados. Algunos ejemplos son name, given-name, family-name, email, tel, street-address, postal-code, country-name y bday. Los campos de inicio de sesión pueden usar username y current-password; una contraseña nueva usa new-password y un código de verificación puede usar one-time-code.

Estos identificadores permiten que los navegadores, los gestores de contraseñas y las herramientas de apoyo reconozcan la finalidad de un campo. Usa el identificador correspondiente a la persona cuyos datos se están introduciendo. Marcar la dirección de contacto de un amigo como el correo propio del usuario para el rellenado automático puede introducir datos equivocados.

Reduce la necesidad de memorizar y volver a introducir datos

Permite pegar en los campos de contraseña y código de verificación y admite gestores de contraseñas. WCAG 3.3.8 Autenticación accesible (mínimo) (AA) permite pruebas cognitivas durante el inicio de sesión solo si se ofrece una alternativa o ayuda que cumpla el criterio, o si se aplican las excepciones especificadas de reconocimiento de objetos o contenido personal. Bloquear el pegado crea una barrera cuando obliga a recordar o transcribir datos y no existe otro método de inicio de sesión que cumpla el criterio.

En un pedido de varios pasos, conserva la información ya introducida. Una opción «La dirección de facturación es la misma que la de entrega» evita volver a escribirla. WCAG 3.3.7 Entrada redundante (A) permite excepciones cuando la repetición es esencial, necesaria por seguridad o la información anterior ya no es válida.

Proporciona una salvaguarda para envíos con consecuencias

Un pedido puede crear un compromiso financiero. Antes de completarlo, ofrece un paso de revisión que permita corregir los datos. Según 3.3.4 Prevención de errores (legales, financieros, de datos) (AA), los envíos pertinentes deben poder revertirse, comprobarse y corregirse, o revisarse y confirmarse con la posibilidad de corregirlos. El alcance también incluye cambiar o eliminar datos almacenados que controla el usuario y enviar respuestas de pruebas.

Mantén la disposición del formulario fácil de seguir cuando se amplíe: las etiquetas directamente encima de los campos y una sola columna principal reducen la distancia entre una instrucción y el lugar donde se aplica.

Distingue el formato de la finalidad de los datos personales

El tipo de entrada y el identificador de autocompletado responden a preguntas distintas. El tipo identifica la clase de valor y puede proporcionar una comprobación de formato. El identificador identifica la información personal del usuario para el rellenado automático:

<label for="your-email">Your email address (required)</label>
<input id="your-email" name="email" type="email"
       required autocomplete="email">
<label for="guest-email">Guest's email address</label>
<input id="guest-email" name="guest-email" type="email">

Ambos campos aceptan direcciones de correo electrónico, pero solo el primero pide el correo del usuario actual. El segundo no debe marcarse como el correo de ese usuario para el rellenado automático. Las etiquetas visibles mantienen la distinción para quienes introducen los valores por sí mismos. Cambiar un identificador no cambia lo que comprueba el tipo de correo electrónico.

Puntos clave

  • Proporciona instrucciones visibles antes de introducir datos y asocia los textos de ayuda con aria-describedby.
  • Marca los campos obligatorios tanto visualmente como con el atributo nativo required.
  • Usa identificadores de autocompletado adecuados para la información del usuario.
  • Admite gestores de contraseñas y el pegado para reducir las barreras de inicio de sesión.
  • Reutiliza respuestas anteriores en procesos de varios pasos, salvo que se aplique una excepción.
  • Proporciona una salvaguarda adecuada de prevención de errores para los envíos con consecuencias.

5.3 Comunica con claridad los errores y los mensajes de estado

Un mensaje de error debe ayudar a recuperarse sin perder el trabajo ya realizado. Un mensaje de estado debe comunicar un cambio sin hacer que la persona pierda su lugar. Ambos necesitan una redacción visible y la asociación correcta en el código.

Indica el problema y una corrección útil

«Entrada no válida» ayuda poco. «Error: introduce una dirección de correo electrónico con el formato nombre@ejemplo.com» identifica lo que necesita atención y sugiere una solución. WCAG 3.3.1 Identificación de errores (A) exige que los errores detectados se describan en texto; 3.3.3 Sugerencia de corrección de errores (AA) exige ofrecer las correcciones conocidas cuando no comprometan la seguridad ni la finalidad del formulario.

<label for="email">Email address</label>
<input id="email" type="email" aria-invalid="true"
       aria-describedby="email-error">
<p id="email-error">Error: Enter an email address in the format name@example.com</p>

Establece aria-invalid="true" solo después de comprobar el campo y encontrar un error. El atributo comunica el estado no válido; la descripción explica el motivo. Un borde rojo por sí solo no proporciona ni la explicación textual ni la asociación.

Ayuda a encontrar varios errores

Después del envío, un formulario largo puede mostrar un resumen de errores en la parte superior. Dale un encabezado como «Hay 2 problemas con tu pedido» y añade enlaces a los campos afectados. Permite que el resumen reciba el foco con tabindex="-1" y haz que el script se lo dé. Añadir «Error: » al principio del título de la página también ayuda a identificar el cambio de estado de la página.

Mantén también los mensajes de cada campo junto a sus entradas y conserva todo lo que ya se haya introducido. Un enlace del resumen lleva a la persona al campo; la explicación junto a él ayuda mientras lo corrige. Vaciar todos los campos obliga a repetir el trabajo ya realizado correctamente.

Los atributos de validación nativos, como required, type="email" y minlength, pueden proporcionar mensajes del navegador. Un sistema personalizado puede usar novalidate y mostrar los suyos. En ambos casos, los errores necesitan texto que los usuarios puedan localizar y asociar al campo correspondiente.

Anuncia un cambio sin mover el foco

Una actualización del carrito suele producirse mientras el foco debe permanecer en el botón Añadir. Usa una región viva que ya esté presente en el documento:

<p role="status" id="cart-status"></p>

Cuando se añade un artículo, un script cambia su texto a «Se ha añadido 1 pan de masa madre a tu carrito». role="status" es cortés: permite que el lector de pantalla termine lo que está diciendo antes de anunciar la actualización. Esto ayuda a cumplir 4.1.3 Mensajes de estado (AA).

Reserva role="alert", un anuncio asertivo, para los mensajes urgentes. Las interrupciones continuas dificultan las compras habituales. Inserta la región vacía antes de actualizar su contenido; crear la región y su mensaje a la vez no se anuncia de forma fiable en muchas combinaciones. Mantén el foco en la tarea para las actualizaciones habituales y muévelo de forma intencionada en situaciones como un resumen de errores que el usuario necesita revisar.

Puntos clave

  • Identifica los errores en texto y sugiere una corrección cuando se conozca.
  • Usa aria-invalid cuando una comprobación detecte un error y asocia su descripción.
  • Conserva los datos introducidos y proporciona un resumen de errores en formularios largos.
  • Actualiza una región de estado existente para anunciar cambios habituales sin mover el foco.
  • Reserva las alertas para los mensajes urgentes.
6

Usa ARIA con moderación y prueba tus páginas

ARIA puede describir información que el HTML nativo no expresa por sí solo, pero sus promesas deben coincidir con el comportamiento de la interfaz. Aprende a elegir nombres y estados con cuidado y después inspecciona lo que comunica el navegador. Combina los análisis automáticos con pruebas de teclado, zoom y lector de pantalla para encontrar tanto errores de código como barreras que necesitan juicio humano. Un hallazgo útil incluye una forma clara de reproducirlo y volver a probarlo.

6.1 Aplica las reglas de uso de ARIA

ARIA añade información al árbol de accesibilidad cuando HTML necesita ayuda para expresar un nombre, una relación o un estado. No crea la interacción en sí. Antes de añadir un atributo, comprueba qué proporciona ya el elemento nativo y qué falta realmente.

Trata un rol como una promesa

WAI-ARIA significa Aplicaciones de Internet Enriquecidas Accesibles. La versión 1.2 se convirtió en recomendación del W3C en junio de 2023. Sus roles, estados y propiedades influyen en lo que se comunica a las tecnologías de apoyo. Un rol como button promete un comportamiento de botón, pero no crea la capacidad de recibir el foco, la activación con teclado ni los estilos.

Un div con role="button" sigue necesitando gestión del teclado y capacidad de recibir el foco. Un button real ya las proporciona. El principio de la guía ARIA Authoring Practices Guide «es mejor no usar ARIA que usarlo mal» advierte de que la información incorrecta puede confundir a los usuarios sobre lo que hace un control.

Conserva el significado nativo

Usa primero elementos y atributos nativos: nav, button, un campo de casilla de verificación y el atributo nativo required. Evita repetir roles implícitos como role="main" en main o role="button" en button. Una excepción útil es role="list" en una lista cuyas viñetas eliminadas afectan a los anuncios de VoiceOver.

No sustituyas el significado de un encabezado por un rol de botón. Anida un botón dentro de él:

<h2>
  <button type="button" aria-expanded="false">Shipping</button>
</h2>

El encabezado sigue apareciendo en la navegación por encabezados y su botón expone la acción. El script debe hacer que el contenido mostrado y el estado expandido coincidan.

Nunca pongas aria-hidden="true" en un control que pueda recibir el foco ni en un antecesor que lo contenga. El foco podría llegar a algo eliminado del árbol de accesibilidad. role="presentation" y role="none" funcionan de otra forma: eliminan la semántica, no el contenido. Los navegadores ignoran esos roles en elementos que pueden recibir el foco, por lo que no pueden usarse para convertir un enlace activo en texto simple.

Encuentra la fuente de un nombre

Para los controles habituales de esta sección, comprueba las fuentes del nombre en este orden de prioridad:

  1. aria-labelledby, que hace referencia a texto mediante un ID.
  2. aria-label, que proporciona una cadena de texto.
  3. La fuente nativa, como una etiqueta, el texto de un botón o el texto alternativo de una imagen.
  4. title, como último recurso cuando corresponda.

aria-describedby añade una descripción después del nombre; no establece el nombre. Una sustitución puede ocultar accidentalmente palabras visibles útiles. <button aria-label="Close dialog">Cancel</button> se anuncia como «Close dialog», aunque la persona ve «Cancel». Prefiere el texto visible o inclúyelo al principio de un nombre ampliado que sea necesario.

Los sitios básicos suelen necesitar ARIA para nombres de puntos de referencia repetidos, botones con iconos, textos de ayuda y errores de campos, controles para mostrar y ocultar contenido, enlaces a la página actual y actualizaciones en vivo. Una gran cantidad de atributos ARIA no es una medida de calidad. Inspecciona el rol y el nombre calculados y usa el teclado para verificar el comportamiento que promete el rol.

Sigue las fuentes de nombre que compiten

Considera un botón con varios atributos que proporcionan un nombre:

<h2 id="options-title">Delivery options</h2>
<button type="button" aria-labelledby="options-title"
        aria-label="Choose delivery">Show pickup options</button>

Sigue primero aria-labelledby: el texto al que hace referencia proporciona «Delivery options». El aria-label de menor prioridad y el texto visible del botón no prevalecen. Por tanto, eliminar solo aria-label deja el mismo nombre calculado.

Para que «Show pickup options» dé nombre a este botón, elimina ambas sustituciones innecesarias. El rol de botón permanece igual en todo momento; solo cambia la fuente de su nombre. Inspecciona el nombre calculado después de cada edición para saber qué atributo causó la discrepancia. Añadir una descripción no corregiría el nombre equivocado, porque una descripción es una información independiente.

Puntos clave

  • Prefiere el significado y el comportamiento del HTML nativo antes de añadir ARIA.
  • ARIA cambia el árbol de accesibilidad, no la gestión del teclado ni los estilos.
  • Conserva la semántica nativa al añadir contenido interactivo.
  • Nunca ocultes con aria-hidden un elemento que pueda recibir el foco ni uno de sus antecesores.
  • Comprueba las sustituciones de nombres; las descripciones no sustituyen a los nombres.

6.2 Comunica los cambios de estado con ARIA

Una interfaz que cambia debe comunicar lo mismo visualmente y mediante el código. Si un panel está abierto pero su botón sigue indicando «contraído», quien usa un lector de pantalla recibe información falsa. Actualiza el estado cada vez que cambie la interfaz.

Mantén sincronizado un control para mostrar y ocultar contenido
<button type="button" aria-expanded="false"
        aria-controls="main-menu">Menu</button>
<ul id="main-menu" hidden>
  <li><a href="/bread">Bread</a></li>
</ul>

Cuando se abre el menú, el script elimina hidden y establece aria-expanded del botón en true. Cuando se cierra, el script restablece hidden y establece el estado en false. El estado pertenece al botón que realiza el cambio. aria-controls identifica el elemento afectado; su compatibilidad varía, por lo que no puede sustituir al estado expandido ni al comportamiento real de ocultación.

Elige el estado adecuado para el control
SituaciónAtributo
Un control abre o cierra contenidoaria-expanded
Un enlace de navegación identifica la página actualaria-current="page"
Un botón permanece activado o desactivadoaria-pressed

Para el enlace de la página actual, aplica estilos al mismo atributo en CSS, como una fuente en negrita y un borde inferior en a[aria-current="page"]. Esto mantiene el resaltado visual vinculado al estado anunciado. aria-selected corresponde a componentes como pestañas y opciones de cuadros de lista, no a enlaces normales de navegación entre páginas.

Un botón de alternancia puede mantener la etiqueta «Silenciar» y cambiar aria-pressed entre false y true. Otro diseño válido cambia la etiqueta de un botón de acción normal entre «Silenciar» y «Activar sonido» sin un estado pulsado. No combines una etiqueta de acción cambiante con el patrón de estado de alternancia, que puede producir anuncios confusos como «Activar sonido, pulsado».

Distingue entre ocultar y deshabilitar

aria-hidden="true" elimina un elemento y sus descendientes del árbol de accesibilidad, pero los deja visibles. Úsalo para iconos decorativos o contenido visual redundante. No impide el acceso con teclado. Usa hidden o display: none cuando una región deba estar indisponible para todo el mundo.

El atributo nativo disabled impide la interacción normal con un control nativo. aria-disabled="true" comunica un estado no disponible, pero no bloquea los clics ni la activación con teclado. Si ese atributo se usa para que un control deshabilitado pueda recibir el foco y ofrecer una explicación, el script debe impedir su acción. Prefiere también los atributos nativos checked y required en campos de entrada nativos.

Prueba ambas direcciones

Abre y cierra el control con el teclado mientras observas los atributos en las herramientas de desarrollo. Inspecciona el estado calculado y escucha su anuncio. Un cambio visual correcto por sí solo no demuestra que se haya actualizado el estado, y un atributo cambiado por sí solo no demuestra que el panel se haya vuelto visible o utilizable.

Puntos clave

  • Actualiza los estados ARIA cada vez que cambie el estado correspondiente de la interfaz.
  • Pon aria-expanded en el control que muestra y oculta el contenido.
  • Usa aria-current="page" para los enlaces a la página actual.
  • Mantén estable la etiqueta de un botón de alternancia con estado pulsado.
  • La ocultación y la deshabilitación mediante ARIA no proporcionan comportamiento de teclado ni de clic.

6.3 Ejecuta comprobaciones automáticas de accesibilidad e interpreta los resultados

Las comprobaciones automáticas encuentran rápidamente muchos problemas de código en una página renderizada. Usa sus resultados para localizar barreras y verificar las correcciones. Sus reglas pueden inspeccionar algunas relaciones y valores, pero decidir si el contenido tiene sentido sigue requiriendo una persona.

Elige una herramienta e inspecciona sus hallazgos

Axe DevTools usa el motor axe-core. WAVE coloca marcadores en la página para que los hallazgos puedan verse en contexto. Lighthouse, en las herramientas de desarrollo de Chrome, da una puntuación de accesibilidad mediante una selección de comprobaciones de axe-core. Accessibility Insights proporciona otro proceso de pruebas. El servicio de validación de marcado del W3C comprueba problemas de HTML como ID duplicados y elementos sin cerrar.

Según sus reglas y el contexto, las herramientas pueden detectar atributos alt ausentes, controles sin nombre, campos sin etiqueta, bajo contraste de texto sobre fondos lisos, ausencia del idioma de la página y ARIA no válido. Algunos problemas de niveles de encabezado aparecen como advertencias. Lee la explicación del hallazgo e inspecciona el elemento que identifica.

Una alerta o un resultado de «necesita revisión» requiere juicio. Un texto en negrita señalado como posible encabezado podría ser un título de sección real escrito como párrafo o simplemente dar énfasis a una frase. Examina su finalidad antes de cambiar su marcado.

Comprende lo que el análisis no puede decidir

Una herramienta puede ver alt="photo" sin saber que la alternativa es inútil. No puede juzgar de forma fiable si el texto de un enlace es claro, los subtítulos son precisos, el orden de foco es lógico o un mensaje de error ayuda a recuperarse. Una capa visual superpuesta puede atrapar el teclado de una forma que el análisis actual no detecte. El texto sobre una fotografía también necesita una comprobación manual del contraste.

Una puntuación de 100 significa que las reglas probadas no encontraron fallos. No es un veredicto de conformidad con las WCAG. Sigue probando las tareas y los significados que esas reglas no pueden evaluar.

Prueba los estados que usan las personas

Un análisis examina el estado renderizado en ese momento. Ejecuta las comprobaciones en cada plantilla de página y repítelas con menús y cuadros de diálogo abiertos, después de errores de formulario y con anchos reducidos. Un componente cerrado puede ocultar problemas que solo aparecen durante su uso.

Supongamos que un informe de una panadería encuentra una imagen principal destacada sin alt, un campo del boletín sin etiqueta y texto de pie de página #999999 sobre blanco. Decide primero si la imagen informa o decora. Añade una alternativa útil o alt="" según corresponda. Asocia el campo de correo a una etiqueta visible. La pareja de colores del pie de página tiene un contraste de 2,85:1; sustituir el color del texto por #595959 da 7,00:1 sobre blanco.

Corrige las causas y verifica los resultados

Prioriza las barreras según su efecto en la tarea. Una trampa de teclado o un control obligatorio sin nombre pueden impedir por completo un pedido. Corrige un campo o componente de pie de página compartido en su origen para que mejoren todas las páginas que lo usan. Después vuelve a ejecutar el análisis en el mismo estado y repite la prueba manual pertinente. Una menor cantidad de errores es una prueba útil, pero la corrección también debe permitir que la persona complete la tarea.

Puntos clave

  • Usa herramientas automáticas para localizar problemas detectables por máquinas.
  • Inspecciona las alertas y los elementos pendientes de revisión antes de decidir una corrección.
  • Un informe sin errores solo abarca las comprobaciones que la herramienta puede realizar.
  • Analiza las plantillas de página y los estados interactivos, no solo las páginas iniciales.
  • Prioriza las barreras que impiden completar tareas, corrige las causas compartidas y vuelve a probar.

6.4 Realiza pruebas manuales con teclado, zoom y lector de pantalla

Las pruebas manuales muestran cómo se comporta una página durante una tarea real. Combina el uso del teclado, las vistas ampliadas, las comprobaciones con lector de pantalla y la inspección directa del árbol. Registra suficiente detalle para que otra persona pueda reproducir un problema y confirmar su corrección.

Sigue una tarea con teclado de principio a fin

Deja el ratón a un lado. Empieza en la barra de direcciones y recorre la página con Tab. Llega a todos los enlaces y controles, usa Intro y Espacio cuando corresponda y retrocede con Mayús+Tab. Comprueba que el foco siga visible y no quede cubierto por una región adhesiva.

Usa el enlace de salto, abre y cierra menús, cierra un cuadro de diálogo con Escape y verifica adónde vuelve el foco. Busca paradas invisibles en componentes cerrados y trampas en reproductores o mapas insertados. En un Mac, activa la navegación con teclado y la navegación completa con Tab de Safari antes de considerar que los controles omitidos son un defecto de la página.

Amplía y redistribuye la página

Prueba con una ampliación del 200 % sin perder texto ni funcionalidad. Después usa una ventana de 1280 px CSS de ancho con un zoom del 400 %, equivalente a 320 px CSS de ancho disponible. Comprueba que los párrafos no tengan desplazamiento horizontal, solapamientos ni cortes. Mantén todas las funciones disponibles en la disposición estrecha. Aplica los valores de espaciado del texto con una herramienta e inspecciona los controles además del texto principal.

Escucha la estructura y los nombres

NVDA en Windows usa Insert como tecla NVDA predeterminada; Bloq Mayús es una alternativa opcional. En modo de lectura, H recorre los encabezados, D los puntos de referencia, K los enlaces, F los campos, T las tablas y B los botones. NVDA+F7 abre la lista de elementos. Tab sigue recorriendo los controles interactivos.

En macOS, Cmd+F5 activa o desactiva VoiceOver. Su modificador VO es Control+Opción; VO+Flecha derecha lee el siguiente elemento y VO+U abre el rotor. En iPhone, deslizar a la derecha lleva al siguiente elemento de VoiceOver. TalkBack ofrece una lectura táctil similar en Android.

Escucha si hay un título y un esquema útiles, nombres claros para los controles, roles correctos, alternativas útiles para las imágenes y etiquetas de campo comprensibles. Los estados obligatorios, los textos de ayuda y los errores deben estar disponibles en los campos correspondientes. Abre un control para mostrar y ocultar contenido y escucha el cambio de estado. Añade un artículo y escucha si se anuncia una actualización de estado sin que salte el foco.

Inspecciona, registra y vuelve a probar

El panel Accesibilidad de Chrome y el Inspector de accesibilidad de Firefox muestran los roles, nombres y estados calculados. Ayudan a averiguar por qué una etiqueta es incorrecta incluso antes de ejecutar un lector de pantalla.

Un informe útil indica la ubicación, los pasos, el comportamiento observado, los usuarios afectados, el criterio relacionado y la corrección sugerida. Por ejemplo: «Campo del boletín en el pie de página: usa Tab para llegar al campo; se anuncia sin etiqueta. Quienes usan lectores de pantalla y control por voz no pueden identificar su finalidad. Añade una etiqueta asociada de dirección de correo electrónico; comprueba 1.3.1, 3.3.2 y 4.1.2».

Vuelve a probar con el método que detectó el problema. Las combinaciones habituales incluyen NVDA con Firefox o Chrome, JAWS con Chrome y VoiceOver con Safari. Las pruebas con personas que usan tecnologías de apoyo a diario pueden revelar barreras que un desarrollador que las usa ocasionalmente pasa por alto.

Haz reproducible un fallo de estado

Un informe sobre un control para mostrar y ocultar contenido puede registrar una prueba breve y completa:

  1. En la página del pan, usa NVDA con Firefox y llega con Tab a «Opciones de entrega».
  2. Pulsa Intro una vez. El panel se vuelve visible, pero el botón sigue anunciándose como contraído.
  3. Inspecciona el botón: aria-expanded sigue siendo false.

Se informa al usuario afectado de que el panel visible sigue cerrado. Registra 4.1.2 Nombre, función, valor (A) y sugiere actualizar el estado del botón cuando cambie el panel. Tras la corrección, repite la apertura y el cierre con las mismas teclas y la misma combinación. Comprueba que la visibilidad del panel y el estado expandido anunciado coincidan en ambas direcciones; inspeccionar solo el estado inicial contraído no detectaría este fallo.

Puntos clave

  • Prueba una tarea completa usando el teclado en ambas direcciones.
  • Comprueba la ampliación, la redistribución y el espaciado del usuario.
  • Escucha la estructura, los nombres, los estados, los errores y las actualizaciones en vivo.
  • Usa el árbol de accesibilidad para rastrear la información calculada.
  • Registra hallazgos reproducibles y vuelve a probar la corrección con el mismo método.
  • Incluye a personas que usan tecnologías de apoyo a diario cuando sea posible hacer pruebas.

Ejemplos de Páginas web accesibles

6 Lecciones Interactivas

1

Crea una página que se explique por sí sola

12 pasos
Convierte la página de una panadería en un esquema con sentido, controles utilizables y una tabla de datos.
  1. 1
    IntroducciónLee la página a través de su código

    La página de una panadería parece clara: un título grande, un menú, algunos nombres de sección en negrita y un control Guardar. Ahora comprueba si el código expresa esos mismos significados, porque los lectores de pantalla usan el árbol de accesibilidad que el navegador construye a partir de él, no la apariencia. Seguirás la interpretación del navegador, crearás un esquema de encabezados y elegirás controles nativos que funcionen sin ratón.

  2. 2
    ExplicaciónEncuentra el rol, el nombre y el estado

    El navegador deriva un árbol de accesibilidad del documento HTML. El rol de un control indica qué es, su nombre lo identifica y su estado indica en qué condición se encuentra.

    Una casilla marcada «Ofertas por correo» necesita los tres. Los lectores de pantalla usan esta información para leerla en voz alta o enviarla a braille; los estilos visuales por sí solos no pueden proporcionarla de forma fiable.

  3. 3
    EjemploCorrige un control Guardar

    La página usa un div en el que se puede hacer clic. Parece un botón, pero no tiene rol de botón nativo, parada de Tab ni activación con Intro o Espacio.

    Sustitúyelo por:

    <button type="button">Save</button>
    

    El texto proporciona el nombre y el elemento proporciona el comportamiento de botón. Usa Tab para llegar a él y después Intro y Espacio para comprobar la activación. Aplica estilos al botón con CSS para mantener el aspecto deseado; no es necesario reconstruirlo como un contenedor genérico.

  4. 4
    DesafíoElige la siguiente comprobación

    El botón Guardar funciona con ratón. Un desarrollador dice que eso también demuestra que se puede usar con teclado. ¿Qué debes hacer?

    ---reveal---

    Llega a él con Tab y actívalo con Intro y Espacio. La activación con ratón solo prueba una vía. Un botón nativo proporciona estos comportamientos con teclado, mientras que un elemento genérico en el que se puede hacer clic aún puede bloquearlos.

  5. 5
    EjemploDa una identidad a la página

    Empieza por identificar el idioma y el tema de la página:

    <html lang="en-US">
    <head>
      <title>Choose a cake – Green Leaf Bakery</title>
    </head>
    

    El idioma permite una pronunciación adecuada. El título distingue esta página de otras pestañas de la panadería y está disponible en los anuncios de los lectores de pantalla.

    Coloca el contenido principal en una sola región main visible. El idioma, el título y la región principal responden a preguntas distintas: cómo leer, qué página es y dónde empieza su contenido.

  6. 6
    EjemploConvierte los nombres de sección en encabezados

    La página contiene un tema, dos secciones y un sabor dentro de una sección. Expresa esas relaciones en el código:

    <h1>Choose a cake</h1>
    <h2>Sizes</h2>
    <h2>Flavors</h2>
    <h3>Lemon</h3>
    

    Ahora quien escucha puede usar la navegación por encabezados para llegar al nivel correcto. Lee solo estos nombres de encabezado en orden: deben seguir describiendo el esquema de la página. Define los tamaños de fuente visuales con CSS después de elegir los niveles, para que una sección principal que se vea más pequeña pueda seguir siendo un h2.

  7. 7
    DesafíoMantén un esquema con sentido

    «Detalles de recogida» es una sección principal, pero h4 tiene el tamaño de fuente deseado. ¿Qué marcado debes usar?

    ---reveal---

    Usa h2 para esa sección principal y aplica estilos a su tamaño de fuente. Los niveles de encabezado expresan relaciones entre secciones. Elegir h4 por su aspecto haría que el esquema sugiriera que faltan secciones intermedias.

  8. 8
    ConsejoComprueba el recorrido del código fuente

    Lee los encabezados como una lista e inspecciona el orden del HTML. El orden de flex puede mover visualmente un enlace de inicio de sesión al principio mientras lo deja al final en el DOM.

    Muévelo en el HTML si esa es su posición lógica. Usa elementos de lista reales para los enlaces agrupados, de modo que el navegador pueda exponer tanto la agrupación como su tamaño.

  9. 9
    ExplicaciónElige qué promete el control

    «Ver cursos» lleva a otra página, así que usa un elemento de anclaje con href. «Mostrar filtros» cambia la página actual, así que usa un botón.

    Un enlace se activa con Intro; un botón se activa con Intro o Espacio. Dentro de un formulario, establece type="button" en Mostrar filtros para que no envíe el formulario accidentalmente.

  10. 10
    EjemploAsocia los horarios de apertura a los encabezados

    Los horarios de apertura tienen relaciones entre filas y columnas. Expresa una tabla pequeña en el código:

    <table>
      <caption>Opening hours</caption>
      <tr><th scope="col">Day</th><th scope="col">Opens</th></tr>
      <tr><th scope="row">Friday</th><td>08:00</td></tr>
    </table>
    

    El título da nombre a la tabla. Una persona que llegue a 08:00 puede oír la fila Friday y la columna Opens. Las celdas de encabezado y sus ámbitos proporcionan ese contexto; organizar cajas normales en filas no lo expresaría en el código.

  11. 11
    DesafíoRevisa un pequeño cambio en la página

    Un enlace nuevo «Pedir ahora» lleva a /order. La tabla de horarios de apertura se reconstruye con cajas div y su título sigue siendo un párrafo en negrita. ¿Qué debe seguir siendo HTML nativo?

    ---reveal---

    Mantén el destino como un elemento de anclaje con href y los horarios de apertura como una tabla real con título y encabezados con ámbito definido. Los estilos de negrita no pueden proporcionar un título de tabla ni relaciones entre encabezados y celdas.

  12. 12
    RepasoInspecciona el significado antes que el aspecto

    Comprueba la información de roles y nombres, el idioma, el título, los puntos de referencia, los encabezados y el orden del código fuente de la página. Después verifica los enlaces, botones, controles nativos y relaciones de la tabla. Un esquema del lector de pantalla y un breve recorrido con teclado ofrecen dos formas prácticas de ver si la estructura funciona.

2

Elige la alternativa adecuada

10 pasos
Proporciona a las fotos, iconos y contenido multimedia de la panadería equivalentes que conserven su finalidad.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPregúntate qué faltaría
  2. 2
    ExplicaciónDecide si la foto informa
  3. 3
    EjemploDa nombre a un enlace de imagen según su destino
  4. 4
    EjemploHaz que un gráfico esté disponible en texto
  5. 5
    DesafíoDescribe la función de un botón
  6. 6
    EjemploMantén un único nombre útil para el botón
  7. 7
    ExplicaciónSincroniza el habla y los sonidos con la reproducción
  8. 8
    ExplicaciónProporciona la información visual que falta
  9. 9
    DesafíoCompleta las alternativas multimedia
  10. 10
    RepasoElige según la finalidad y el medio
3

Sigue el foco durante una tarea de compra

13 pasos
Prueba el orden de teclado, el foco visible, los enlaces de salto y un cuadro de diálogo nativo.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue la posición del usuario
  2. 2
    ExplicaciónUsa el recorrido nativo del teclado
  3. 3
    EjemploElimina las paradas invisibles
  4. 4
    DesafíoCorrige el recorrido
  5. 5
    EjemploRestablece un anillo claro
  6. 6
    EjemploMira debajo de la cabecera adhesiva
  7. 7
    DesafíoMide un área de activación pequeña
  8. 8
    EjemploAñade la ruta de salto
  9. 9
    DesafíoPrueba el propio enlace de salto
  10. 10
    EjemploAbre el cuadro de diálogo nativo
  11. 11
    ConsejoConserva un lugar útil después de eliminar un elemento
  12. 12
    DesafíoRelaciona el foco y la visibilidad
  13. 13
    RepasoRepite la interacción completa
4

Comprueba la legibilidad de una página de panadería

12 pasos
Mide el contraste, añade indicaciones independientes del color y prueba las disposiciones ampliadas.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPrueba tres aspectos de la legibilidad
  2. 2
    ExplicaciónElige el umbral antes de medir
  3. 3
    EjemploCompara un color cercano al umbral
  4. 4
    DesafíoComprueba dos usos de un mismo color
  5. 5
    ExplicaciónAñade significado más allá del color
  6. 6
    DesafíoComprueba las series de un gráfico
  7. 7
    EjemploEncuentra el contenedor que corta el contenido
  8. 8
    EjemploReduce el ancho efectivo de la vista
  9. 9
    ConsejoAplica el espaciado como lo haría un usuario
  10. 10
    DesafíoCorrige la disposición estrecha
  11. 11
    ConexiónCombina las comprobaciones
  12. 12
    RepasoMantén disponible la misma información
5

Ayuda a un cliente a completar un pedido

13 pasos
Crea indicaciones de formulario asociadas, permite recuperarse de errores y anuncia las actualizaciones del carrito.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue toda la tarea del formulario
  2. 2
    EjemploAsocia la etiqueta del correo electrónico
  3. 3
    EjemploProporciona la pregunta compartida
  4. 4
    DesafíoCorrige una discrepancia con el nombre visible
  5. 5
    ExplicaciónAñade el texto de ayuda antes del error
  6. 6
    EjemploAdmite herramientas de entrada de datos
  7. 7
    DesafíoConserva una respuesta para el siguiente paso
  8. 8
    EjemploIdentifica un campo que no supera la validación
  9. 9
    EjemploDa un punto de entrada a varios errores
  10. 10
    DesafíoAnuncia el resultado en el carrito
  11. 11
    ConexiónComprueba antes de confirmar
  12. 12
    DesafíoRelaciona la recuperación con el esfuerzo de entrada
  13. 13
    RepasoComprueba las etiquetas, las indicaciones y los mensajes
6

Verifica la interfaz visible y la anunciada

16 pasos
Corrige nombres y estados ARIA, interpreta un análisis y redacta un hallazgo manual reproducible.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónCompara lo que comunica la página
  2. 2
    ExplicaciónComprueba qué puede cambiar ARIA
  3. 3
    EjemploRastrea un nombre inesperado
  4. 4
    DesafíoConserva dos significados
  5. 5
    EjemploHaz que un estado coincida con su panel
  6. 6
    Idea claveMantén estable la etiqueta de un botón de alternancia
  7. 7
    DesafíoElige el estado de página
  8. 8
    ExplicaciónInterpreta el análisis como evidencia
  9. 9
    EjemploCorrige el origen compartido
  10. 10
    DesafíoInterpreta un resultado sin errores
  11. 11
    EjemploRecorre la ruta manualmente
  12. 12
    EjemploEscucha los nombres y la estructura
  13. 13
    EjemploRedacta un hallazgo reproducible
  14. 14
    DesafíoElige la nueva prueba
  15. 15
    DesafíoTermina la revisión combinada
  16. 16
    RepasoVerifica cada tipo de promesa

Ejercicios de Páginas web accesibles

50 Preguntas de Práctica en 5 sets

Set 1: Elige una estructura clara y controles nativos10 Preguntas de Práctica

Pregunta 1 de 10

El control «Guardar receta» de una panadería es un botón nativo. ¿Qué dos teclas deben activarlo?
  1. Tab y Mayús+Tab.
  2. Intro y Espacio.
  3. Intro y Mayús+Tab.
  4. Espacio y Escape.
Mostrar respuestaOcultar respuesta
Respuesta: B
Intro y Espacio activan un botón nativo. Tab y Mayús+Tab mueven el foco entre controles; no realizan la acción del botón. Este comportamiento esperado es una razón para elegir un botón nativo en lugar de crear un elemento genérico en el que se pueda hacer clic.

Pregunta 2 de 10

Una página tiene un h1 llamado «Cursos de panadería» y un h2 llamado «Cursos de fin de semana». ¿Qué nivel de encabezado corresponde a «Principiantes del domingo», una parte de Cursos de fin de semana?
  1. h2, con su tamaño de fuente definido en CSS.
  2. h4, para indicar que es un encabezado menor.
  3. h3, con su tamaño de fuente definido en CSS.
  4. p, en negrita para conservar el esquema.
Mostrar respuestaOcultar respuesta
Respuesta: C
Una parte de una sección h2 corresponde al nivel h3. El nivel de encabezado expresa su lugar en el esquema, mientras que CSS controla su tamaño. Elegir h4 solo porque se ve más pequeño introduce un salto de nivel en lugar de describir la estructura de la página.

Pregunta 3 de 10

¿Qué elemento HTML es adecuado para un control que lleva al usuario a la página /delivery de la panadería?
  1. Un elemento de anclaje con href="/delivery".
  2. Un botón con type="button".
  3. Un elemento de anclaje sin href.
  4. Un summary dentro de un elemento details.
Mostrar respuestaOcultar respuesta
Respuesta: A
Un elemento de anclaje con href representa la navegación a un destino y permite la activación normal de un enlace. Un botón representa una acción, por lo que usarlo aquí daría un rol distinto del comportamiento de ir a un destino. Un elemento de anclaje sin href no proporciona un enlace normal que pueda recibir el foco del teclado.

Pregunta 4 de 10

Una foto de pan y las palabras visibles «Pan de aceitunas» están dentro del mismo enlace de producto. La foto no añade información más allá de identificar ese producto. ¿Qué texto alternativo es adecuado para la foto?
  1. alt="Olive loaf".
  2. alt="Product image".
  3. Ningún atributo alt.
  4. alt="".
Mostrar respuestaOcultar respuesta
Respuesta: D
Un alt vacío permite que las palabras visibles den nombre al enlace una sola vez, sin repetir el nombre del producto. Omitir alt es distinto: un lector de pantalla puede anunciar el nombre del archivo. La decisión depende de la finalidad de esta foto dentro del enlace, donde el producto ya está identificado por el texto.

Pregunta 5 de 10

Una entrevista grabada en una panadería se ofrece solo como audio. ¿Qué alternativa textual necesita?
  1. Una pista de subtítulos sincronizada con vídeo.
  2. Una descripción de la foto de portada.
  3. Un título que nombre el tema de la entrevista.
  4. Una transcripción de la grabación.
Mostrar respuestaOcultar respuesta
Respuesta: D
El contenido solo de audio necesita una transcripción para que su información esté disponible en texto. Los subtítulos para personas sordas se sincronizan con la reproducción de vídeo y no son la alternativa textual independiente que se necesita aquí. Nombrar el tema identifica la grabación, pero no comunica su contenido real.

Pregunta 6 de 10

Tab llega a enlaces de un menú móvil que parece cerrado porque tiene opacity: 0. ¿Qué debe cambiar mientras el menú está cerrado?
  1. Añadir aria-hidden="true" a la región.
  2. Asignar tabindex="0" a cada enlace.
  3. Ocultar la región con hidden.
  4. Mover la región más lejos de la pantalla.
Mostrar respuestaOcultar respuesta
Respuesta: C
El atributo hidden elimina la región cerrada tanto de la vista como del recorrido del teclado. La opacidad o la colocación fuera de la pantalla cambian su aspecto sin eliminar sus paradas. La ocultación mediante ARIA por sí sola elimina la región del árbol de accesibilidad, pero puede dejar que quienes usan el teclado den el foco a sus enlaces.

Pregunta 7 de 10

Una herramienta da a una pareja de colores una relación de 4,49:1. ¿Cumple el nivel AA para texto principal de 16 px CSS de grosor normal?
  1. No; el texto normal necesita al menos 4,5:1.
  2. Sí; al redondear a un decimal da 4,5.
  3. Sí; el texto principal normal solo necesita 3:1.
  4. No; todo texto principal debe alcanzar 7:1 en AA.
Mostrar respuestaOcultar respuesta
Respuesta: A
El texto normal necesita al menos 4,5:1 y 4,49 está por debajo de ese mínimo exacto. Redondear la relación mostrada a 4,5 no puede hacer que la pareja cumpla el requisito. El umbral de 3:1 se aplica al texto grande, mientras que 7:1 es el mínimo AAA para texto normal.

Pregunta 8 de 10

El marcado es <label for="buyer-email">Email address</label><input id="email" name="buyer-email" type="email">. ¿Qué corrige directamente la asociación de la etiqueta?
  1. Cambiar el tipo del campo a texto simple.
  2. Cambiar el ID del campo a buyer-email.
  3. Cambiar el texto de la etiqueta a buyer-email.
  4. Cambiar el name del campo a email.
Mostrar respuestaOcultar respuesta
Respuesta: B
El valor de for de la etiqueta debe coincidir con el ID único del campo, por lo que cambiar ese ID asocia la pareja. El atributo name identifica los datos enviados y no puede sustituir la relación con el ID. Las palabras visibles pueden seguir siendo «Email address», que describen claramente la finalidad del campo.

Pregunta 9 de 10

Un encabezado «Ingredients» tiene role="button", tabindex="0" y aria-label="Expand". Los clics del ratón expanden el contenido, pero Espacio no hace nada y la navegación por encabezados lo omite. ¿Qué estructura corrige la navegación por encabezados, las teclas del botón y la discrepancia con el nombre visible?
  1. Un botón nativo Ingredients dentro del h2, conservando aria-label="Expand".
  2. El rol de botón del h2 existente, con aria-label cambiado a «Ingredients».
  3. Un enlace Ingredients con nombre dentro del h2, con href="#" y el controlador de clic.
  4. Un botón nativo Ingredients dentro del h2, sin la sustitución de nombre Expand.
Mostrar respuestaOcultar respuesta
Respuesta: D
Conservar el h2 y anidar un botón nativo mantiene la navegación por encabezados y proporciona activación con Intro o Espacio. Dejar que el texto visible Ingredients dé nombre al botón también restablece la relación con el nombre visible. Un botón anidado que conserve aria-label="Expand" corrige la estructura y las teclas, pero sigue comunicando a quienes usan control por voz un nombre que no contiene las palabras que ven.

Pregunta 10 de 10

Una herramienta informa de una etiqueta ausente en un pie de página reutilizado en 12 páginas de una panadería. También señala un texto en negrita para revisar si es un encabezado. ¿Cómo debe tratar el desarrollador ambos hallazgos?
  1. Corregir la etiqueta compartida e inspeccionar la finalidad del texto en negrita.
  2. Corregir cada pie por separado y convertir toda la negrita en h2.
  3. Etiquetar el campo con un marcador de posición e ignorar el aviso.
  4. Suprimir ambos hallazgos hasta que un lector de pantalla informe de un error.
Mostrar respuestaOcultar respuesta
Respuesta: A
Corregir el pie de página compartido soluciona la causa en todas sus páginas. El aviso de posible encabezado necesita inspección porque el texto en negrita puede ser un encabezado de sección o un énfasis ordinario. Convertir automáticamente toda la negrita en encabezados crearía secciones falsas en lugar de resolver el informe mediante el juicio.
Set 2: Mantén claros el foco, las indicaciones y el estado10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Dónde debe declararse el idioma principal de la página?
  1. En name del elemento body.
  2. En aria-label del encabezado principal.
  3. En title del elemento de navegación.
  4. En lang del elemento html.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una página de recetas usa una fotografía solo como borde decorativo. ¿Qué alternativa de imagen se ajusta a su finalidad?
  1. Un atributo alt vacío.
  2. Una oración que describa cada decoración.
  3. El título de la receta repetido como texto alternativo.
  4. El nombre original del archivo de la fotografía.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un botón de pago con foco tiene un contorno claro, pero un aviso adhesivo de cookies lo cubre por completo. ¿Qué requisito AA sigue sin cumplirse?
  1. Foco visible.
  2. Tamaño del área de activación (mínimo).
  3. Foco no oculto (mínimo).
  4. Apariencia del foco.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un enlace de salto aparece primero en el código fuente, pero usa display: none. Su destino es una región main sin ID. ¿Qué corrección proporciona un recorrido utilizable sin añadir main a cada secuencia de Tab?
  1. Permitir que el enlace reciba el foco; apuntar a main por ID con tabindex cero.
  2. Mantener display none; apuntar a main por ID con tabindex menos uno.
  3. Permitir que el enlace reciba el foco; apuntar a main por ID con tabindex menos uno.
  4. Permitir que el enlace reciba el foco; identificar su destino solo con una clase.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una panadería muestra un punto rojo para «Cerrado» y uno verde para «Abierto», sin otra indicación de estado. ¿Qué cambio directo permite entender el significado sin distinguir los colores?
  1. Aumentar la saturación de los colores de ambos puntos.
  2. Aumentar ambos puntos con el mismo relleno.
  3. Añadir «Cerrado» o «Abierto» junto a cada punto.
  4. Usar dos colores con más contraste frente al fondo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Con un tamaño de texto del 200 %, una tarjeta de receta de altura fija corta sus últimas líneas. ¿Qué cambio en CSS aborda la causa?
  1. Mantener su altura y reducir la fuente.
  2. Mantener su altura y ocultar el desbordamiento.
  3. Mantener su altura y desplazar líneas fuera de pantalla.
  4. Permitir que su altura crezca con el contenido.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un campo de contraseña tiene una etiqueta visible y el texto de ayuda cercano «Al menos 12 caracteres» con id="pw-help". ¿Qué atributo asocia ese texto como descripción?
  1. aria-labelledby="pw-help".
  2. aria-describedby="pw-help".
  3. autocomplete="pw-help".
  4. aria-label="pw-help".
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Después de que falle la validación de un pedido, el formulario borra todos los valores. El campo de correo permanece con aria-invalid="false" y su aria-describedby apunta solo a un texto de ayuda antiguo, aunque existe un párrafo de error nuevo. ¿Qué corrección proporciona una vía completa de corrección?
  1. Conservar los valores, marcar el correo como no válido y referenciar los ID de ayuda y error.
  2. Conservar los valores y referenciar ambos ID, pero mantener el estado no válido en false.
  3. Borrar los valores, marcar el correo como no válido y sustituir su etiqueta por el error.
  4. Conservar los valores y marcar el correo como no válido, pero dejar el error sin asociar.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué atributo identifica el enlace a la página abierta en una lista de navegación?
  1. aria-selected="true".
  2. aria-current="page".
  3. aria-pressed="true".
  4. aria-expanded="true".
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un menú se anuncia correctamente al cargar la página. Después de abrirlo, no se puede llegar a sus enlaces con Tab, aunque el panel está visible y expanded tiene el valor true. ¿Qué plan de verificación localiza mejor la barrera restante?
  1. Repetir solo el análisis inicial y aceptar el nombre correcto del botón.
  2. Cambiar el estado anunciado a false y mantener visible el panel.
  3. Añadir etiquetas a los enlaces y dar por verificado el panel abierto.
  4. Probar el recorrido con teclado abierto el menú e inspeccionar el estado renderizado de los enlaces.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Aplica las reglas en estados reales de la página10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un formulario contiene un botón «Añadir una nota» que abre un panel opcional, pero al hacer clic envía el pedido. ¿Qué atributo nativo impide directamente ese envío?
  1. type="button" en el botón.
  2. aria-expanded="false" en el botón.
  3. role="button" en el botón.
  4. tabindex="-1" en el botón.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un vídeo pregrabado de amasado tiene subtítulos para personas sordas que recogen el habla con precisión. Muestra en silencio la textura de la masa que indica que el amasado ha terminado. El reproductor tiene controles nativos. ¿Qué añadido cubre la carencia multimedia restante en el nivel AA?
  1. Una transcripción del diálogo que repita los subtítulos.
  2. Una etiqueta accesible que vuelva a nombrar el botón de reproducción.
  3. Una audiodescripción de la indicación importante de la textura.
  4. Subtítulos en el mismo idioma que el habla existente.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un grupo de opciones de entrega usa botones de opción nativos. ¿Cómo debe cambiar normalmente la opción seleccionada una persona que usa el teclado después de entrar en el grupo?
  1. Pulsar Tab por separado para cada opción.
  2. Pulsar Escape para seleccionar la siguiente opción.
  3. Pulsar Espacio para pasar al siguiente grupo del formulario.
  4. Usar las teclas de flecha entre las opciones.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una barra de herramientas tiene dos botones cuadrados con iconos en una fila horizontal. No se aplica ninguna excepción para elementos en línea, controles equivalentes ni otra, salvo la posible separación entre áreas de activación. ¿Qué diseño cumple Tamaño del área de activación (mínimo) en el nivel AA?
  1. Ambas áreas miden 16 px por lado, con 6 px entre sus bordes.
  2. Ambas áreas miden 16 px por lado, con 10 px entre sus bordes.
  3. Ambas áreas miden 22 px por lado, con 1 px entre sus bordes.
  4. Una mide 24 px por lado y la otra 16 px, con 2 px entre sus bordes.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un panel usa la misma pareja de colores con una relación de 3,60:1 para texto de 22 px de grosor normal y para un límite necesario para identificar su campo de entrada. ¿Cómo deben evaluarse ambos usos en el nivel AA?
  1. El texto cumple; el límite del campo no cumple.
  2. El texto no cumple; el límite del campo cumple.
  3. Ambos cumplen porque la relación supera 3:1.
  4. Ambos fallan porque cada parte necesita 4,5:1.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Qué unidad de fuente sigue directamente el tamaño de fuente raíz y es útil para respetar el ajuste de texto predeterminado del usuario?
  1. rem.
  2. px.
  3. vh.
  4. vw.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Varias casillas de verificación responden a «¿Qué tipos de pan te interesan?». Cada casilla ya tiene su propia etiqueta. ¿Qué marcado añade su pregunta compartida en el código?
  1. Un párrafo sobre un contenedor por lo demás genérico.
  2. Un marcador de posición repetido dentro de cada casilla.
  3. Un ID compartido asignado a todas las casillas.
  4. Un fieldset con esa pregunta en su legend.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un campo obligatorio ya tiene una etiqueta correcta y un texto de ayuda visible con el ID «hint». El valor introducido no supera una comprobación y un error específico tiene el ID «err». El valor debe seguir disponible y ambas descripciones deben escucharse. ¿Qué actualización cumple las tres necesidades?
  1. Conservar el valor; establecer aria-invalid en false y aria-describedby="hint err".
  2. Borrar el valor; establecer aria-invalid en true y aria-describedby="hint err".
  3. Conservar el valor; establecer aria-invalid en true y aria-describedby="hint err".
  4. Conservar el valor; establecer aria-invalid en true y aria-labelledby="hint err".
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un botón tiene el texto «Back», aria-label="Return" y aria-labelledby="previous-title". El encabezado al que se hace referencia dice «Previous step». ¿Qué nombre debe esperar encontrar el desarrollador al inspeccionarlo?
  1. «Return».
  2. «Back».
  3. «Back Return».
  4. «Previous step».
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un análisis señala que a una imagen decorativa de separación le falta alt. ¿Qué corrección se ajusta a la finalidad real de la imagen?
  1. Añadir alt="Divider image" para describirla.
  2. Usar el nombre del archivo como su alt.
  3. Añadir alt="" para omitir la imagen.
  4. Mover la descripción a su atributo title.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Diagnostica barreras durante una interacción10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

La navegación principal aparece visualmente primero, pero CSS la mueve desde el final del DOM. También hay una navegación de migas de pan y ambas regiones tienen el nombre «Enlaces». ¿Qué corrección aclara tanto el recorrido como la elección de regiones?
  1. Mantener el orden del código fuente y asignar tabindex positivo a cada enlace.
  2. Mantener ambos nombres y usar aria-hidden para ocultar la región de migas de pan a los lectores de pantalla.
  3. Poner la navegación principal en un orden lógico del código fuente y dar nombres distintos a las regiones.
  4. Poner el rol navigation en cada enlace y usar CSS para invertir el orden visual.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una panadería usa la misma foto de un pan en una página de producto y en una página sobre cómo solucionar problemas de cortezas demasiado horneadas. ¿Por qué podrían diferir sus textos alternativos?
  1. Un archivo reutilizado debe tener un rol de imagen distinto cada vez.
  2. La información relevante cambia según la finalidad de la página.
  3. El texto alternativo debe enumerar todos los rasgos visibles en ambos lugares.
  4. El navegador genera una alternativa nueva a partir de cada título de página.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

El botón de un artículo del carrito abre un cuadro de confirmación nativo. Al confirmar se eliminan el último artículo y el botón que abrió el cuadro, y después se cierra el cuadro. El encabezado del carrito permanece, pero normalmente no puede recibir el foco. ¿Qué plan conserva el comportamiento modal y un lugar útil después de confirmar?
  1. Abrir con showModal y confiar en que el foco vuelva automáticamente al botón eliminado.
  2. Abrir mostrando una capa div y, al cerrar, desplazarse visualmente al encabezado del carrito.
  3. Abrir con showModal y, al cerrar, añadir aria-live al encabezado del carrito sin foco.
  4. Abrir con showModal y, al cerrar, dar el foco al encabezado del carrito con tabindex menos uno.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

La etiqueta blanca de tamaño normal de un botón tiene un contraste de 1,63:1 sobre un fondo ámbar. El texto negro sobre ese mismo ámbar da 12,88:1. ¿Qué cambio directo de color cumple el contraste de texto AA?
  1. Usar negro para la etiqueta.
  2. Poner en negrita la etiqueta blanca.
  3. Añadir un nombre accesible.
  4. Ampliar el relleno del botón.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un enlace de un párrafo solo se distingue por el color. Su texto tiene un contraste de 5,10:1 frente al fondo, pero solo de 2,20:1 frente al texto circundante. Se subraya al situar el puntero encima y al recibir el foco. ¿Qué corrección sencilla resuelve la barrera restante para identificar el enlace?
  1. Mantener el subrayado visible también en el estado normal.
  2. Quitar el subrayado al situar el puntero para unificar los estados.
  3. Mantener el estado normal porque cumple el contraste con el fondo.
  4. Añadir un aria-label sin cambiar los estilos visuales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

El proceso de pago obliga al cliente a volver a escribir para la facturación una dirección de entrega que sigue siendo válida, sin motivo de seguridad. El inicio de sesión bloquea el pegado de la contraseña sin una alternativa que cumpla el criterio. Un campo para el correo de contacto de un amigo usa el identificador autocomplete="email" del cliente. ¿Qué plan aborda los tres problemas?
  1. Ofrecer reutilizar la dirección, mantener bloqueado el pegado y quitar el identificador incorrecto del correo del amigo.
  2. Seguir pidiendo la dirección, permitir pegar la contraseña y conservar el identificador del correo del amigo.
  3. Ofrecer reutilizar la dirección, permitir pegar la contraseña y cambiar el identificador del amigo a username.
  4. Ofrecer reutilizar la dirección, permitir pegar la contraseña y quitar el identificador incorrecto del correo del amigo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

¿Qué valor ARIA comunica que un campo se ha comprobado y contiene un error?
  1. aria-required="false".
  2. aria-invalid="true".
  3. aria-pressed="true".
  4. aria-current="page".
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Tres controles no coinciden con su comportamiento: un menú abierto comunica expanded false; Silenciar cambia a Activar sonido mientras pressed pasa a true; un botón de pedido con aria-disabled sigue enviando el pedido. El equipo quiere un botón de alternancia Silenciar con estado pulsado y un botón de pedido no disponible que pueda recibir el foco. ¿Qué corrección se ajusta a ese diseño?
  1. Comunicar que el menú está abierto, mantener la etiqueta cambiante y bloquear las acciones de pedido no disponibles con un script.
  2. Comunicar que el menú está abierto, mantener estable la etiqueta Silenciar y confiar en aria-disabled para bloquear el envío.
  3. Comunicar que el menú está abierto, mantener estable la etiqueta Silenciar y bloquear las acciones de pedido no disponibles con un script.
  4. Comunicar que el menú está abierto, mantener estable la etiqueta Silenciar y usar disabled nativo en el botón de pedido.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Se corrige un problema de nombre ausente en un botón de pedido compartido. Su nombre calculado ahora parece correcto. ¿Qué nueva prueba verifica mejor tanto el fallo original del lector de pantalla como la acción?
  1. Aceptar el nombre calculado y repetir solo la puntuación automática inicial.
  2. Usar el mismo recorrido con lector de pantalla, escuchar el nombre y activar el botón.
  3. Probar solo con ratón porque el nombre del elemento ya está presente.
  4. Revisar una captura del botón y contar las advertencias restantes del análisis.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un botón usa aria-disabled="true", pero al hacer clic en él sigue realizando un pedido. ¿Qué comportamiento falta si el control debe seguir pudiendo recibir el foco?
  1. El valor ARIA debe trasladarse al encabezado más cercano.
  2. El botón también debe recibir un valor positivo de tabindex.
  3. Un aria-label nuevo debe decir «No disponible» en lugar de indicar su acción.
  4. Un script debe impedir su acción mientras no esté disponible.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Revisa una página mediante varias vías de acceso10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un informe comprueba varios criterios de conformidad AA, pero ningún criterio de nivel A. ¿Puede establecer la conformidad con el nivel AA de las WCAG 2.2?
  1. Sí; AA sustituye a los criterios de nivel inferior.
  2. Sí; el sitio se usa correctamente con un lector de pantalla.
  3. No; también deben cumplirse todos los criterios AAA.
  4. No; deben cumplirse todos los criterios A y AA.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un botón nativo muestra «Buscar pan» junto a un SVG decorativo oculto. Su aria-label es «Buscar pan», pero aria-labelledby apunta a un encabezado que dice «Filtros». ¿Qué nombre se calcula y qué corrección conserva el nombre visible y la ocultación decorativa?
  1. «Filtros»; quitar solo aria-label y conservar la referencia al encabezado.
  2. «Filtros»; quitar las sustituciones de nombre y mantener oculto el SVG.
  3. «Buscar pan»; conservar ambas sustituciones de nombre y mostrar el SVG.
  4. «Buscar pan»; quitar solo la referencia al encabezado y mantener oculto el SVG.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un proceso de pago tiene paradas de Tab innecesarias en los encabezados, un recorrido de foco que salta en contra del orden de los campos cambiado con CSS y un div Enviar que solo funciona con ratón. ¿Qué plan corrige los tres problemas?
  1. Eliminar las paradas de encabezados, corregir el orden del código fuente y usar un botón de envío nativo.
  2. Eliminar las paradas de encabezados, conservar el orden solo con CSS y usar un botón de envío nativo.
  3. Conservar las paradas de encabezados, corregir el orden del código fuente y usar un botón de envío nativo.
  4. Eliminar las paradas de encabezados, corregir el orden del código fuente y añadir solo un rol y tabindex a Enviar.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un enlace pequeño a una receta aparece dentro de una frase normal. ¿Debe añadirse relleno a su área de activación en línea hasta que mida 24 por 24 px CSS específicamente para cumplir 2.5.8?
  1. Sí; el mínimo se aplica sin ninguna excepción.
  2. No; el texto de enlace también está exento del contraste de texto.
  3. No; los enlaces dentro de frases tienen una excepción para elementos en línea.
  4. Sí; todos los enlaces requieren 44 por 44 px CSS en el nivel AA.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Al eliminar el último artículo del carrito, se borra su botón Eliminar con foco. El foco vuelve al principio de la página; el encabezado del carrito normalmente no puede recibirlo. ¿Qué corrección conserva un lugar útil sin añadir otra parada habitual de Tab?
  1. Dar al encabezado tabindex cero y el foco después de la eliminación.
  2. Dar al encabezado tabindex menos uno y solo desplazarlo hasta que sea visible.
  3. Dar al encabezado tabindex menos uno y el foco después de la eliminación.
  4. Dejar el encabezado sin tabindex y solo desplazarlo hasta que sea visible.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Con un zoom del 400 % en una ventana de 1280 px CSS de ancho, los párrafos requieren desplazamiento horizontal y las instrucciones de recogida desaparecen. Una tabla de datos ancha también requiere desplazamiento horizontal. ¿Qué corrección necesita el contenido ordinario respetando la excepción para la tabla?
  1. Mantener el desplazamiento horizontal de párrafos y tabla; conservar las instrucciones de recogida.
  2. Redistribuir los párrafos y conservar las instrucciones de recogida; la tabla puede mantener dos dimensiones.
  3. Redistribuir los párrafos y conservar la tabla; eliminar las instrucciones de recogida para ganar espacio.
  4. Redistribuir los párrafos y conservar las instrucciones; cortar la última columna de la tabla para ajustarla.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un campo recoge el número de teléfono de un cliente, incluido un posible cero inicial. ¿Qué tipo de entrada se ajusta a esos datos sin pretender validar su formato?
  1. type="number".
  2. type="email".
  3. type="url".
  4. type="tel".
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un campo obligatorio para el correo del usuario solo tiene un texto de marcador de posición: no tiene etiqueta, identificador de autocompletado ni indicador visible de obligatoriedad. ¿Qué corrección concisa cubre el nombre, la finalidad y el requisito?
  1. Añadir una etiqueta visible asociada que indique la obligación, required nativo y autocomplete email.
  2. Añadir una etiqueta visible asociada que indique la obligación, required nativo y autocomplete username.
  3. Añadir una etiqueta visible asociada que indique la obligación y autocomplete email, pero no required.
  4. Añadir una etiqueta oculta, required nativo y autocomplete email; mantener visible solo el marcador de posición.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un panel contiene enlaces y está oculto visualmente mediante opacidad, mientras que su elemento padre tiene aria-hidden="true". El foco del teclado sigue entrando en esos enlaces. ¿Qué corrección hace que el panel cerrado no esté disponible por ninguna de las dos vías?
  1. Usar hidden o display none mientras el panel esté cerrado.
  2. Mantener la opacidad y mover aria-hidden a cada enlace que pueda recibir el foco.
  3. Mantener el elemento padre oculto a los lectores de pantalla y volver a etiquetar cada enlace.
  4. Mantener el elemento padre sin cambios y dar a los enlaces un rol de presentación.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

¿Qué comando de VoiceOver en macOS abre el rotor cuando VO significa Control+Opción?
  1. VO+Flecha derecha.
  2. Cmd+F5.
  3. VO+U.
  4. Mayús+Tab.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

87 Términos Clave, cada uno con su definición

A

Accesibilidad web
La accesibilidad web es la capacidad de las personas con discapacidad para percibir, comprender, recorrer y usar un sitio web mediante las herramientas y los ajustes de acceso que utilizan.
Un cliente puede completar un pedido en línea de una panadería con teclado, lector de pantalla o una vista ampliada.
Atributo aria-current
Aria-current identifica el elemento actual dentro de un conjunto relacionado; el valor page marca el enlace a la página que se está viendo.
Un sitio de panadería aplica estilos a aria-current="page" para que el mismo marcado controle el resaltado visible de navegación.
Atributo aria-disabled
Aria-disabled comunica que un control no está disponible mientras deja sin cambios su capacidad de recibir el foco y su comportamiento de activación; un script debe bloquear la acción si sigue siendo posible activarla.
Un botón de pedido no disponible que puede recibir el foco necesita un script que bloquee su acción, además del estado deshabilitado anunciado.
Atributo tabindex
Tabindex es un atributo HTML que controla el foco: cero añade una parada de Tab según el orden del código fuente, mientras que menos uno permite dar el foco de forma intencionada sin añadir una parada a la secuencia normal.
El encabezado del carrito usa tabindex="-1" para que un script pueda darle el foco después de eliminar el último artículo.
Audiodescripción
La audiodescripción es una narración de información visual importante ausente de la pista de audio de un vídeo, pronunciada durante las pausas o en una versión audiodescrita independiente.
Un vídeo de panadería audiodescrito indica qué ajuste del horno aparece en silencio en la pantalla de temperatura del horno.
Aviso de revisión
Un aviso de revisión es un hallazgo de una herramienta que necesita inspección humana antes de decidir si el contenido señalado crea una barrera.
Un aviso de posible encabezado lleva al autor a comprobar si el párrafo en negrita realmente introduce una sección.
axe-core
Axe-core es un motor de pruebas de accesibilidad usado por herramientas como axe DevTools y por una selección de comprobaciones de Lighthouse.
El desarrollador inspecciona un hallazgo de axe para localizar el control cuyo valor ARIA no coincide con su rol.

Á

Ámbito del encabezado
El ámbito del encabezado es la relación declarada de un encabezado de tabla con las celdas de su fila o columna, que permite al navegador asociar un valor con los encabezados que explican su significado.
Un encabezado de sábado tiene scope="row" para que su nombre se asocie a las horas de apertura y cierre de esa fila.
Árbol de accesibilidad
Un árbol de accesibilidad es la representación que el navegador deriva de los objetos significativos de una página y que expone sus roles, nombres, estados y propiedades a las tecnologías de apoyo.
El árbol muestra un botón nativo Guardar como un botón llamado «Guardar», incluso cuando su aspecto está personalizado.
Área de activación del puntero
Un área de activación del puntero es la zona interactiva que se activa con un dispositivo apuntador, incluido el relleno sobre el que se puede hacer clic; su tamaño se mide a partir de esa zona, no solo del icono dibujado dentro.
El relleno hace que el botón de un icono cuadrado de 16 px mida 24 px por lado, aumentando el área real que el usuario puede pulsar.

B

Barrera que impide completar una tarea
Una barrera que impide completar una tarea es un obstáculo que impide al usuario terminar una actividad y que debe tener prioridad en las correcciones de accesibilidad.
Una trampa de teclado en el proceso de pago se corrige antes que un problema menor de presentación que no impide hacer el pedido.
Botón
Un botón es un control interactivo que realiza una acción y que cuenta con compatibilidad HTML nativa para recibir el foco y activarse con Intro o Espacio.
El botón «Mostrar filtros» abre opciones en la página de producto actual sin navegar a otro lugar.
Botón de alternancia
Un botón de alternancia es un botón que mantiene un estado activado o desactivado, representado habitualmente mediante aria-pressed mientras su etiqueta permanece estable.
El botón de alternancia Silenciar conserva la palabra «Silenciar» mientras su estado pulsado indica si el sonido está silenciado.

C

Cambio de contexto
Un cambio de contexto es un cambio importante, como la navegación o el desplazamiento del foco, que puede alterar la comprensión del usuario sobre su posición.
Un selector de destino usa un botón Ir para que seleccionar un valor no abra inesperadamente otra página.
Campo obligatorio
Un campo obligatorio es un control de formulario que debe completarse, lo que se comunica mediante un indicador visible y el atributo nativo required.
La etiqueta dice «Dirección de correo electrónico (obligatorio)» y el campo lleva required para las comprobaciones del navegador.
Colores forzados
Los colores forzados son un modo de visualización que usa una paleta limitada elegida por el usuario y que puede sustituir fondos y eliminar sombras, por lo que las indicaciones de foco deben seguir siendo útiles ante esos cambios.
Un anillo de foco basado en un contorno sigue siendo útil en un tema de contraste de Windows después de que desaparezca la sombra del botón.
Comprobación automática de accesibilidad
Una comprobación automática de accesibilidad aplica reglas que una máquina puede probar a un estado renderizado de la página; puede encontrar fallos detectables, pero no puede determinar el significado ni todos los requisitos de interacción.
Un análisis automático encuentra un campo de boletín sin etiqueta, pero sigue siendo necesaria una persona que juzgue si las alternativas de las imágenes son útiles.
Contraste no textual
El contraste no textual es la diferencia necesaria para identificar controles, sus estados o gráficos significativos frente a los colores adyacentes, normalmente con al menos 3:1 en el nivel AA.
El borde de un campo necesario para localizarlo debe alcanzar 3:1 frente al fondo blanco adyacente.
Control de mostrar y ocultar contenido
Un control de mostrar y ocultar contenido muestra u oculta una región relacionada y tiene un estado expandido que describe si su contenido está abierto.
El botón Menu usa aria-expanded, mientras un script también añade o elimina hidden en su lista.
Control nativo
Un control nativo es un elemento de interfaz integrado en HTML que proporciona semántica estándar, comportamiento con teclado y los estados pertinentes.
Un sitio de panadería usa una casilla de verificación para las ofertas por correo y conserva su interacción esperada con la tecla Espacio.
Criterio de conformidad de las WCAG
Un criterio de conformidad de las WCAG es un requisito de accesibilidad numerado, con nombre y comprobable, de nivel A, AA o AAA; la conformidad AA incluye todos los criterios A y AA.
El desarrollador comprueba 1.4.3 Contraste (mínimo) para decidir si el texto principal cumple el umbral AA.
Cuadro de diálogo modal
Un cuadro de diálogo modal es una ventana de interacción que requiere atención mientras la página circundante queda indisponible para la interacción.
Un cuadro de horarios mantiene Tab dentro hasta que se cierra y después devuelve el foco al control que lo abrió.

D

Declaración del área de visualización
Una declaración del área de visualización es un metadato HTML que controla el área de visualización de la disposición en móviles, normalmente ajustándola al ancho del dispositivo con una escala inicial de uno.
Un sitio de panadería permite el zoom mediante el gesto de pellizco en lugar de añadir user-scalable=no a sus metadatos del área de visualización.
Deficiencia de la visión del color
Una deficiencia de la visión del color es una diferencia en la percepción del color que puede dificultar la distinción entre algunos colores.
Un sitio de panadería añade «Abierto ahora» junto a un punto verde para que la disponibilidad siga clara sin reconocer el verde.
Descripción accesible
Una descripción accesible es texto complementario asociado a un objeto, como un texto de ayuda de un campo que se anuncia después de su nombre.
El texto de ayuda de la contraseña se asocia con aria-describedby, mientras que la etiqueta sigue proporcionando el nombre «Contraseña».

E

Enlace
Un enlace es un elemento de navegación que lleva al usuario a una página, un archivo o un lugar, normalmente expresado como un elemento de anclaje con href.
El texto «Información de entrega» enlaza con la página de una panadería que explica su zona y horario de entrega.
Enlace de salto
Un enlace de salto es un enlace accesible con teclado que permite saltar contenido repetido de la página y lleva al usuario hacia el contenido principal.
La primera pulsación de Tab muestra «Saltar al contenido principal», lo que permite al cliente evitar todo el menú de la cabecera.
Entrada redundante
La entrada redundante consiste en pedir información ya introducida en el mismo proceso cuando podría reutilizarse o seleccionarse.
Una casilla de facturación reutiliza la dirección de entrega, salvo que una excepción válida exija que el cliente la introduzca de nuevo.
Estado ARIA
Un estado ARIA describe la condición actual de un objeto y debe mantenerse sincronizado con los cambios de la interfaz.
Al abrir el menú, cambia tanto la visibilidad del panel como el estado expandido del botón a true.
Etiqueta de control de formulario
Una etiqueta de control de formulario es un texto asociado a un control que identifica su finalidad y normalmente proporciona su nombre accesible; una asociación HTML correcta también permite darle el foco al hacer clic en la etiqueta.
Al hacer clic en «Dirección de correo electrónico», el campo correspondiente recibe el foco porque el valor for de la etiqueta coincide con su ID.
Etiqueta en el nombre
Etiqueta en el nombre es el requisito de que el nombre accesible de un control incluya su texto visible para que los usuarios puedan activarlo con esas palabras.
Un botón Confirmar pedido conserva «Confirmar pedido» en su nombre calculado para los clientes que usan control por voz.

F

Foco del teclado
El foco del teclado es la posición actual de interacción en una página, que identifica el elemento que recibe la entrada pertinente del teclado.
Después de que Tab llegue a «Añadir al carrito», pulsar Espacio activa ese botón con foco y no otro elemento.

G

Gestión del foco
La gestión del foco es la colocación intencionada del foco del teclado después de un cambio de interfaz, como cerrar un cuadro de diálogo o eliminar un artículo, para conservar una posición lógica en la tarea.
Después de eliminar un artículo, la página da el foco al siguiente botón Eliminar en lugar de volver al principio de la página.
Gráficos vectoriales escalables (SVG)
SVG es un formato de gráficos vectoriales cuyos gráficos en línea que transmiten significado necesitan un rol adecuado y un nombre accesible.
Un gráfico de valoración en línea usa role="img" y un título que dice «Valoración de 4 de 5 estrellas».
Grupo de campos
Un grupo de campos es un contenedor HTML que agrupa controles de formulario relacionados para que su pregunta compartida pueda proporcionarse mediante una leyenda.
Los botones de opción de recogida y entrega por mensajería están dentro de un mismo fieldset para la pregunta sobre el método de entrega.

H

HTML semántico
El HTML semántico es el marcado elegido por el significado y la finalidad del contenido, cuya presentación se gestiona por separado mediante CSS.
Un sitio web de panadería usa un encabezado real para «Horarios de apertura», de modo que aparezca en la navegación por encabezados de los lectores de pantalla.

I

Identificación de errores
La identificación de errores consiste en indicar al usuario mediante texto qué problema de entrada se ha detectado, para que el fallo se comprenda sin depender del color.
El formulario comunica «Error: introduce una dirección de correo electrónico» junto al campo de correo con error y conserva los demás datos introducidos.
Identificador de autocompletado
Un identificador de autocompletado es un valor de atributo estandarizado que identifica la finalidad de la entrada para el rellenado automático del navegador, los gestores de contraseñas y las herramientas de apoyo.
El campo de contraseña existente usa autocomplete="current-password" para que un gestor de contraseñas pueda reconocerlo.
Idioma de la página
El idioma de la página es el idioma principal declarado en el elemento HTML raíz, que ayuda a las tecnologías de apoyo a usar una pronunciación adecuada.
Una página de panadería en inglés establece lang="en-US", mientras que un pasaje breve en francés en ella tiene su propio atributo de idioma.
Imagen compleja
Una imagen compleja es un gráfico cuya información detallada necesita algo más que un texto alternativo conciso, por lo que requiere una explicación cercana o datos equivalentes además de una identificación breve.
Un gráfico de visitas tiene un alt breve, además de un texto cercano sobre la tendencia y una tabla de valores mensuales.
Imagen de texto
Una imagen de texto es una imagen que contiene palabras que a menudo podrían proporcionarse como texto real, cuyo tamaño y redistribución serían más fáciles de ajustar.
Una imagen de rebajas se sustituye por texto HTML para que «20 % de descuento en todo el pan» siga siendo claro al ampliarlo.
Imagen decorativa
Una imagen decorativa aporta un aspecto visual sin contribuir con información ni función, por lo que un elemento img debe tener un alt vacío.
Un borde con un patrón de harina usa alt="" para no interrumpir la receta cuando se lee en voz alta.
Imagen funcional
Una imagen funcional representa una acción o destino como contenido de un control, por lo que su alternativa nombra esa función en lugar de describir solo el aspecto de la imagen.
Un logotipo que ocupa por sí solo el enlace al inicio tiene la alternativa «Inicio de la panadería Green Leaf».
Indicación basada únicamente en el color
Una indicación basada únicamente en el color comunica una distinción solo mediante el color, dejando su significado inaccesible cuando ese color no puede reconocerse.
Un borde rojo sin texto de error deja al cliente intentando adivinar qué campo necesita corrección y por qué.
Indicación independiente del color
Una indicación independiente del color transmite una distinción mediante palabras, forma, patrón u otra característica que no requiere identificar un color.
Las líneas discontinuas y continuas de un gráfico permiten distinguir sus series incluso en una vista en escala de grises.
Indicador de foco
Un indicador de foco es una indicación visible que identifica el elemento con foco del teclado y ayuda a saber qué control activará la siguiente tecla de activación.
Un sitio de panadería mantiene un contorno azul para que los clientes vean qué control activará la siguiente pulsación de Intro.
Inspección de accesibilidad
La inspección de accesibilidad consiste en examinar los roles, nombres y estados calculados en las herramientas del navegador para rastrear lo que comunica la página.
El panel Accesibilidad muestra que una sustitución de nombre oculta, y no el texto visible del botón, proporciona su nombre.

J

Jerarquía de encabezados
Una jerarquía de encabezados es el esquema expresado mediante niveles de encabezado, que relaciona el tema de una página con sus secciones y subsecciones anidadas independientemente de sus tamaños de fuente visuales.
«Sabores» es un h2, con «Chocolate» y «Limón» como subsecciones h3 dentro de esa sección.

L

Leyenda del grupo de campos
Una leyenda del grupo de campos es la etiqueta breve dentro de un fieldset que da a las opciones relacionadas el contexto de la pregunta a la que responden.
«Método de entrega» se escucha con los botones de opción, mientras que cada opción también tiene su propia etiqueta.
Lista de descripciones
Una lista de descripciones es una lista HTML de términos o nombres asociados a descripciones, expresada con los elementos dl, dt y dd.
El glosario de una panadería asocia cada nombre de pan con su explicación mediante una lista de descripciones.
Luminancia relativa
La luminancia relativa es una medida calculada del nivel de luz de un color, con el negro en 0 y el blanco en 1 en los cálculos de contraste de las WCAG.
La fórmula de contraste coloca la luminancia más clara más 0,05 sobre la luminancia más oscura más 0,05.

M

Mensaje de estado
Un mensaje de estado es una actualización sobre una acción o un estado que debe estar disponible para las tecnologías de apoyo sin recibir el foco.
«Se ha añadido 1 pan a tu carrito» se anuncia de forma cortés mientras el cliente permanece en el botón Añadir.
Modificación del espaciado del texto por el usuario
Una modificación del espaciado del texto por el usuario es un estilo que aumenta el espaciado de líneas, párrafos, letras o palabras y que el contenido debe tolerar sin pérdidas.
La prueba revela una tarjeta de altura fija que corta su última línea cuando aumenta el espaciado entre párrafos.

N

Nombre accesible
Un nombre accesible es el texto calculado que identifica un objeto, derivado de fuentes de nombre admitidas, como una etiqueta o el texto de un botón.
El desarrollador inspecciona por qué un aria-label ha sustituido las palabras visibles del botón Cancelar en su nombre anunciado.

O

Ocultación del elemento con foco
La ocultación del elemento con foco se produce cuando otro contenido cubre el componente que recibe el foco, lo que dificulta ver la posición actual del teclado.
Un aviso adhesivo cubre por completo el botón de pedido, por lo que es necesario corregir su desplazamiento y posición.
Orden de tabulación
El orden de tabulación es la secuencia de elementos que pueden recibir el foco a los que se llega con Tab o Mayús+Tab, normalmente basada en un orden lógico del documento.
El formulario de pedido llega a los datos de contacto antes que a las opciones de entrega, en la misma secuencia en que aparecen.
Orden del código fuente
El orden del código fuente es la secuencia de elementos del documento HTML que normalmente determina el orden de lectura y de foco, incluso cuando CSS mueve esos elementos a otras posiciones.
Un enlace de inicio de sesión desplazado visualmente mediante el orden de flex sigue recibiendo el foco en su lugar original en el HTML.

P

Prevención de errores
La prevención de errores protege los envíos con consecuencias mediante la reversión, la comprobación con corrección o la revisión y confirmación con corrección, en lugar de limitarse a comunicar un error después.
Antes de hacer el pedido, el cliente puede revisar las cantidades y cambiar una dirección de entrega incorrecta.
Prueba manual de accesibilidad
Una prueba manual de accesibilidad usa la interacción y el juicio humanos para evaluar significados y comportamientos que las reglas automáticas no pueden valorar por completo.
La persona que realiza la prueba hace un pedido con teclado y comprueba adónde vuelve el foco después de cerrar el cuadro de revisión.
Pseudoclase :focus-visible
Focus-visible es una pseudoclase CSS que coincide cuando el navegador considera que el foco debe indicarse visualmente al usuario.
La hoja de estilo usa :focus-visible para mostrar un anillo destacado con teclado, mientras que los clics normales del ratón en botones pueden no mostrar ninguno.
Punto de referencia
Un punto de referencia es una región de la página identificada en el código que las tecnologías de apoyo pueden usar como destino de navegación, como el contenido principal o una región de navegación con nombre.
Una persona que usa un lector de pantalla salta directamente al contenido principal del sitio de una panadería en lugar de volver a leer su cabecera.

R

Redistribución del contenido
La redistribución del contenido es la reorganización del contenido para una vista estrecha sin perder información ni exigir que el texto ordinario se desplace en dos direcciones; algunos contenidos bidimensionales tienen excepciones.
La navegación se apila encima del formulario de pedido en lugar de desaparecer cuando se reduce el ancho disponible.
Región inerte
Una región inerte es contenido que se ha vuelto indisponible para la interacción, lo que impide que sus descendientes actúen como controles activos; la apertura modal nativa vuelve inerte la página del fondo.
Un cuadro de diálogo modal abierto con showModal() vuelve inerte la página del fondo mientras está activo.
Región viva
Una región viva es una región de la página cuyo contenido modificado puede ser anunciado por las tecnologías de apoyo sin mover el foco del teclado.
Un párrafo de estado del carrito inicialmente vacío recibe texto nuevo después de que el usuario pulse un botón Añadir.
Relación de contraste
Una relación de contraste compara la luminancia relativa de dos colores en una escala de 1:1 a 21:1; el mínimo requerido depende de si la pareja se usa para texto normal, texto grande o información no textual.
Una herramienta indica 4,48:1 para texto gris sobre blanco, por debajo del mínimo AA para texto normal.
Repetición de las pruebas
La repetición de las pruebas consiste en volver a recorrer la vía de acceso que fallaba después de una corrección para comprobar que la barrera original se ha resuelto.
Después de corregir una etiqueta, la persona que realiza la prueba da el foco al mismo campo con el lector de pantalla que reveló inicialmente la ausencia del nombre.
Resumen de errores
Un resumen de errores es un informe agrupado de los fallos de un formulario, que normalmente recibe el foco después del envío y enlaza con los controles afectados.
El encabezado «Hay 2 problemas con tu pedido» introduce enlaces que llevan a los usuarios a los campos con errores.
Rol
Un rol es el tipo semántico que se comunica para un objeto en el árbol de accesibilidad y expresa qué deben esperar los usuarios que sea.
Un rol de botón promete un control que se puede activar, pero asignar ese rol a un div no implementa sus teclas.
Rol de presentación
Un rol de presentación elimina la semántica de un elemento mientras mantiene disponible su contenido; los navegadores lo ignoran en elementos que pueden recibir el foco, por lo que no puede deshabilitar un enlace activo.
Añadir role="presentation" no puede convertir de forma fiable un enlace activo en texto simple ni ocultar su contenido.
Rotor
El rotor es una herramienta de navegación de VoiceOver que permite elegir categorías como encabezados, enlaces, puntos de referencia y controles de formulario.
En macOS, VO+U abre el rotor para que la persona que realiza la prueba pueda inspeccionar los encabezados disponibles como destinos en la página.

S

Subtítulos
Los subtítulos son una transcripción o traducción sincronizada del diálogo para espectadores que pueden oír el audio, pero necesitan ayuda para entenderlo.
Una persona usa subtítulos traducidos para una entrevista, pero sigue necesitando subtítulos para personas sordas que transmitan las indicaciones sonoras importantes.
Subtítulos para personas sordas
Los subtítulos para personas sordas son texto sincronizado que transmite el habla, los sonidos importantes y la identificación necesaria de los hablantes durante la reproducción de un vídeo, poniendo la información audible a disposición visualmente.
Los subtítulos para personas sordas del vídeo de una lección de panadería identifican una alarma del temporizador además de las instrucciones habladas del instructor.
Sugerencia de corrección de errores
Una sugerencia de corrección de errores es una solución conocida y útil que se ofrece después de detectar un fallo de entrada cuando lo permiten la seguridad y la finalidad del formulario.
El mensaje proporciona el ejemplo «nombre@ejemplo.com» en lugar de limitarse a la expresión poco útil «Entrada no válida».

T

Tecnología de apoyo
Una tecnología de apoyo es una herramienta que ayuda a una persona a usar contenido digital, como un lector de pantalla, una lupa o un dispositivo de pulsadores.
El control por voz permite que un cliente diga «haz clic en Buscar» para usar un control cuyo nombre coincide con su etiqueta.
Texto alternativo
El texto alternativo es la alternativa textual de una imagen en su atributo alt; comunica información o una función útil en contexto. Las imágenes puramente decorativas reciben un valor vacío.
La alternativa de una foto de pan de masa madre describe su corteza porque esa característica importa en su página de producto.
Texto de marcador de posición
Un texto de marcador de posición es una indicación de entrada que se muestra mientras un campo está vacío, desaparece al escribir y no proporciona una etiqueta visible permanente.
El ejemplo de dirección permanece en un texto de ayuda cercano para que siga disponible después de que el cliente empiece a escribir.
Texto grande
El texto grande para el contraste de las WCAG tiene al menos 24 px CSS de grosor normal o unos 18,7 px CSS en negrita y puede usar el umbral de 3:1 en AA; ser un encabezado por sí solo no establece ese tamaño.
Un encabezado de 22 px de grosor normal sigue usando el mínimo de 4,5:1 para texto normal aunque sea un encabezado.
Texto oculto visualmente
El texto oculto visualmente es texto que CSS oculta a la vista ordinaria mientras permanece en el árbol de accesibilidad, a diferencia del texto eliminado con display none o visibility hidden.
Un botón compacto de eliminación mantiene las palabras «Eliminar artículo» disponibles para los lectores de pantalla sin mostrarlas.
Título de la página
El título de la página es el texto del elemento HTML title que identifica una página en las pestañas y los marcadores del navegador y en los anuncios de los lectores de pantalla.
En el sitio de una panadería, el título «Elegir una tarta – Panadería Green Leaf» distingue la pestaña de pedidos de la pestaña de horarios.
Título de la tabla
El título de la tabla es el texto del elemento HTML caption que identifica el tema o la finalidad de una tabla de datos.
«Horarios de apertura de la tienda» da nombre a la tabla antes de que quien escucha navegue por sus celdas de días y horas.
Trampa de teclado
Una trampa de teclado es un componente en el que se puede entrar con el teclado, pero del que no se puede salir mediante un método de teclado disponible.
Un mapa insertado no supera la prueba cuando Tab entra en él, pero ninguna acción de teclado permite que el cliente continúe.
Transcripción
Una transcripción es un relato textual independiente de un audio grabado que pone la información hablada a disposición sin escuchar la grabación.
Un pódcast de la panadería ofrece una transcripción legible junto a su reproductor de audio para quienes no pueden oírlo.

U

Umbral de contraste
Un umbral de contraste es una relación mínima exacta para la clase de contenido correspondiente; redondear lo que se muestra no puede hacer que una relación inferior cumpla el requisito.
Un valor de 2,99:1 no cumple un requisito de 3:1 aunque se muestre como 3,0 con un decimal.
Unidad rem
Un rem es una unidad de longitud CSS relativa al tamaño de fuente del elemento raíz, que permite que los tamaños del texto sigan ese ajuste base.
El texto de 1rem del body crece cuando el usuario aumenta el tamaño de fuente predeterminado del navegador.

W

WAI-ARIA
WAI-ARIA es una especificación del W3C sobre roles, estados y propiedades que añaden o modifican información comunicada a las tecnologías de apoyo.
El control para mostrar y ocultar contenido usa ARIA para su estado expandido, mientras que un botón nativo proporciona la activación con teclado.
WebVTT
WebVTT es un formato de pistas de texto que asocia los tiempos de las señales con texto, lo que permite que los subtítulos aparezcan en los momentos adecuados de la reproducción.
Un archivo de subtítulos para personas sordas en inglés proporciona una señal temporizada para el sonido de una batidora antes de la siguiente frase hablada.

Z

Zoom del navegador
El zoom del navegador amplía o reduce la página mostrada, cambiando tanto el espacio efectivo de disposición como el tamaño de su contenido.
Con un zoom del 400 %, una ventana de 1280 px CSS de ancho proporciona un ancho efectivo de contenido de 320 px CSS.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar