{"id":1182,"date":"2026-06-08T13:47:06","date_gmt":"2026-06-08T13:47:06","guid":{"rendered":"https:\/\/webaccessible.cat\/?post_type=guia_wcag&#038;p=1182"},"modified":"2026-06-08T14:18:18","modified_gmt":"2026-06-08T14:18:18","slug":"nombre-accesible-comandos-aria","status":"publish","type":"guia_wcag","link":"https:\/\/webaccessible.cat\/es\/guia-wcag\/nombre-accesible-comandos-aria\/","title":{"rendered":"Nombre accesible en comandos ARIA"},"content":{"rendered":"<h2>\u00bfQu\u00e9 es un nombre accesible?<\/h2>\n<p>El nombre accesible es el texto que el lector de pantalla lee en voz alta cuando el usuario llega a un elemento interactivo. Para un bot\u00f3n, es el texto que explica la acci\u00f3n. Para un enlace, es el texto que describe el destino.<\/p>\n<p>El criterio WCAG 4.1.2 exige que todos los componentes de interfaz de usuario tengan un nombre que la tecnolog\u00eda de asistencia pueda leer. Cuando a\u00f1ades <code>role=\"link\"<\/code>, <code>role=\"button\"<\/code> o <code>role=\"menuitem\"<\/code> a un elemento, le est\u00e1s prometiendo a los lectores de pantalla que ese elemento es interactivo. Si no tiene nombre, el usuario llega a un elemento que sabe que puede accionar, pero no sabe para qu\u00e9 sirve.<\/p>\n<h2>\u00bfPor qu\u00e9 es importante?<\/h2>\n<p>Imagina a un usuario de lector de pantalla navegando con teclado. El lector anuncia \u00abenlace\u00bb pero no dice nada m\u00e1s. El usuario no sabe a d\u00f3nde lleva ni si le interesa. Tiene que hacer clic a ciegas o saltarse el elemento y perderse contenido potencialmente relevante.<\/p>\n<p>Esto ocurre exactamente con elementos como <code>&lt;a id=\"content\" role=\"link\"&gt;&lt;\/a&gt;<\/code>: el elemento existe en el DOM, es focusable, y el lector de pantalla lo anuncia como \u00abenlace\u00bb \u2014 pero no tiene ning\u00fan texto ni etiqueta que explique nada.<\/p>\n<h2>C\u00f3mo corregirlo<\/h2>\n<p>Hay tres formas de aportar un nombre accesible a un comando ARIA:<\/p>\n<p><strong>1. Texto visible en el interior del elemento<\/strong> \u2014 la m\u00e1s sencilla y la preferida:<\/p>\n<pre><code>&lt;!-- \u2705 El texto interior act\u00faa como nombre accesible --&gt;\r\n&lt;div role=\"button\"&gt;Enviar formulario&lt;\/div&gt;\r\n&lt;div role=\"link\"&gt;Leer m\u00e1s sobre accesibilidad&lt;\/div&gt;<\/code><\/pre>\n<p><strong>2. <code>aria-label<\/code><\/strong> \u2014 cuando no puedes a\u00f1adir texto visible, por ejemplo, un bot\u00f3n con solo un icono:<\/p>\n<pre><code>&lt;!-- \u2705 aria-label proporciona el nombre accesible --&gt;\r\n&lt;div role=\"button\" aria-label=\"Cerrar ventana\"&gt;\u2715&lt;\/div&gt;\r\n&lt;a role=\"link\" aria-label=\"Ir a la secci\u00f3n de contacto\"&gt;&lt;\/a&gt;<\/code><\/pre>\n<p><strong>3. <code>aria-labelledby<\/code><\/strong> \u2014 cuando el nombre ya existe en otro elemento de la p\u00e1gina:<\/p>\n<pre><code>&lt;!-- \u2705 aria-labelledby apunta al elemento que contiene el nombre --&gt;\r\n&lt;h2 id=\"titulo-seccion\"&gt;Servicios de accesibilidad&lt;\/h2&gt;\r\n&lt;div role=\"link\" aria-labelledby=\"titulo-seccion\"&gt;&lt;\/div&gt;<\/code><\/pre>\n<h2>Errores habituales<\/h2>\n<p>El error m\u00e1s frecuente es el ancla vac\u00eda usada como ancla de p\u00e1gina. Es un patr\u00f3n muy com\u00fan en WordPress y constructores de p\u00e1ginas para crear puntos de navegaci\u00f3n interna:<\/p>\n<pre><code>&lt;!-- \u274c Ancla vac\u00eda sin nombre accesible --&gt;\r\n&lt;a id=\"content\" role=\"link\"&gt;&lt;\/a&gt;<\/code><\/pre>\n<p>La soluci\u00f3n m\u00e1s sencilla es eliminar el <code>role=\"link\"<\/code> si el elemento no es un enlace real, sino solo un punto de anclaje:<\/p>\n<pre><code>&lt;!-- \u2705 Ancla de navegaci\u00f3n sin rol interactivo --&gt;\r\n&lt;a id=\"content\"&gt;&lt;\/a&gt;\r\n\r\n&lt;!-- O mejor, con un elemento no interactivo --&gt;\r\n&lt;div id=\"content\"&gt;&lt;\/div&gt;<\/code><\/pre>\n<p>Otro error habitual: <code>aria-label<\/code> vac\u00edo o <code>aria-labelledby<\/code> apuntando a un elemento que no existe o que no tiene texto:<\/p>\n<pre><code>&lt;!-- \u274c aria-label vac\u00edo \u2014 no proporciona ning\u00fan nombre --&gt;\r\n&lt;div role=\"button\" aria-label=\"\"&gt;&lt;\/div&gt;\r\n\r\n&lt;!-- \u274c aria-labelledby apunta a un elemento inexistente --&gt;\r\n&lt;div role=\"menuitem\" aria-labelledby=\"elemento-que-no-existe\"&gt;&lt;\/div&gt;<\/code><\/pre>\n<div class=\"et_pb_section_0 et_pb_section et_pb_section--fixed et_section_regular et_flex_section et-interaction-target-03o12ngdyu\" data-interaction-target=\"03o12ngdyu\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\"><div class=\"et_pb_column_0 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\"><p>Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.<\/p>\n<\/div><\/div><\/div><div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_icon_0 et_pb_icon et_pb_module et_flex_module\" data-interaction-trigger=\"4bs8z0k0z5\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">M<\/span><\/span><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es un nombre accesible? El nombre accesible es el texto que el lector de pantalla lee en voz alta cuando el usuario llega a un elemento interactivo. Para un bot\u00f3n, es el texto que explica la acci\u00f3n. Para un enlace, es el texto que describe el destino. El criterio WCAG 4.1.2 exige que todos [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","class_list":["post-1182","guia_wcag","type-guia_wcag","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/webaccessible.cat\/es\/wp-json\/wp\/v2\/guia_wcag\/1182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webaccessible.cat\/es\/wp-json\/wp\/v2\/guia_wcag"}],"about":[{"href":"https:\/\/webaccessible.cat\/es\/wp-json\/wp\/v2\/types\/guia_wcag"}],"wp:attachment":[{"href":"https:\/\/webaccessible.cat\/es\/wp-json\/wp\/v2\/media?parent=1182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}