heading-quality

El texto del encabezado debería ser descriptivo, no un marcador de posición

manualWCAG 2.4.6 (AA)confianza: mediumgravedad: minoroperable

Marca los encabezados cuyo nombre accesible es un marcador de posición en lugar de una descripción del contenido que sigue: una palabra genérica ("Heading", "Untitled"), un hueco de plantilla numerado ("Section 2"), un nombre de archivo o una URL. Las frases en inglés se reconocen siempre, y las alemanas, españolas, francesas o japonesas cuando el encabezado está en ese idioma.

Ámbito de aplicación. Elementos con rol de encabezado (<h1>-<h6> nativos, o cualquier elemento cuyo atributo role se resuelve en heading: el primer token que nombra un rol conocido, sin distinguir mayúsculas de minúsculas) que están incluidos en el árbol de accesibilidad y tienen un nombre accesible no vacío. Un encabezado sin nombre alguno es competencia de empty-heading, no de esta regla. Un elemento personalizado cuyos ElementInternals le dan el rol heading (this.attachInternals().role), sin un atributo role que nombre otro, cuenta como lo hace un elemento nativo con ese rol.

Resultado esperado. El nombre accesible del encabezado, normalizado (espacios en blanco colapsados, sin distinción de mayúsculas/minúsculas, puntuación final eliminada), no es un marcador de posición dejado en el marcado: una palabra genérica conocida ("heading", "title", "untitled", "lorem ipsum", ...), un hueco de plantilla numerado ("Heading 2", "Section 3"), un nombre de archivo o una URL. Ninguno de estos describe el tema o el propósito del contenido que introducen.

Qué informa un hallazgo.

  • name: el nombre accesible del encabezado, con los espacios en blanco colapsados.
  • normalizedName: el mismo nombre tal como se comparó: en minúsculas y sin la puntuación final.

Estos campos de data.details ayudan a leer y reproducir un hallazgo. Salvo reasonCode y los pocos campos que Esquema de salida indica como estables, no son un contrato estable: un campo puede cambiar de nombre o desaparecer en una versión menor, así que no construyas sobre ellos.

Ejemplos

can't tell
<h3>Heading</h3>
<p>We are open Monday through Friday from 10 to 16.</p>

El texto del encabezado es la propia palabra genérica de marcador de posición "Heading", no una descripción de la sección.

n/a
<h3>Opening hours</h3>
<p>We are open Monday through Friday from 10 to 16.</p>

El encabezado nombra su tema real.

Cómo comprobarlo

Cuando esta regla no puede decidir, informa cantTell y deja la pregunta a una persona. Cada pregunta que puede plantear aparece aquí bajo su código de motivo, con los pasos para responderla. Un hallazgo lleva los mismos pasos en howToCheck, en el idioma del análisis. Consulta Esquema de salida.

FILENAME_LIKE_HEADING

  1. Localizar el encabezado que indica el informe y leer su texto.
  2. Leer el contenido que le sigue, hasta el siguiente encabezado.
  3. Decidir si ese archivo es el tema de la sección (un archivo que se ofrece para descargar) o un nombre sobrante, como el nombre de archivo de una imagen.

Se cumple. El nombre de archivo es el tema real de la sección, como el documento que ofrece.

No se cumple. El encabezado es un nombre de archivo sobrante (como IMG_1234.jpg) que no describe el contenido que le sigue, lo que incumple WCAG 2.4.6 (G130).

PLACEHOLDER_HEADING_TEXT

  1. Localizar el encabezado que indica el informe y leer su texto.
  2. Leer el contenido que le sigue, hasta el siguiente encabezado.
  3. Decidir si el encabezado describe ese contenido o es un texto de plantilla como «Encabezado», «Lorem ipsum» o «Sin título».

Se cumple. El encabezado nombra el tema del contenido que le sigue (un «Paso 1» numerado sobre el primer paso es correcto).

No se cumple. El encabezado es un texto de relleno que no describe el contenido que le sigue, lo que incumple WCAG 2.4.6 (G130).

URL_LIKE_HEADING

  1. Localizar el encabezado que indica el informe y leer su texto.
  2. Leer el contenido que le sigue, hasta el siguiente encabezado.
  3. Decidir si la dirección web es el tema de esa sección (un sitio que se reseña o se enumera) o si sustituye a un título real.

Se cumple. La dirección es el tema de la sección, así que describe el contenido que le sigue.

No se cumple. La dirección no describe el contenido que le sigue, lo que incumple WCAG 2.4.6 (G130).

Ver código fuente