{"id":1344,"date":"2026-02-13T07:00:00","date_gmt":"2026-02-13T06:00:00","guid":{"rendered":"https:\/\/programaraciegas.net\/?p=1344"},"modified":"2026-01-19T09:12:26","modified_gmt":"2026-01-19T08:12:26","slug":"el-body-de-una-pagina-html","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=1344","title":{"rendered":"El body de una p\u00e1gina HTML"},"content":{"rendered":"<p>En los art\u00edculos anteriores se present\u00f3 la <a href=\"https:\/\/programaraciegas.net\/?p=1331\">estructura general de un documento HTML<\/a> y se profundiz\u00f3 en el <a href=\"https:\/\/programaraciegas.net\/?p=1332\">prop\u00f3sito del elemento &lt;head&gt;<\/a>.<\/p>\n<p>El elemento &lt;body&gt; representa el contenido del documento: aquello que el usuario percibe como la p\u00e1gina y con lo que interact\u00faa, incluyendo texto, navegaci\u00f3n, im\u00e1genes, formularios y componentes de aplicaci\u00f3n web.<\/p>\n<p>El &lt;body&gt; no es \u00fanicamente un contenedor visual. En t\u00e9rminos de accesibilidad y usabilidad, el cuerpo es el lugar donde se materializa la estructura sem\u00e1ntica del contenido: c\u00f3mo se organizan los t\u00edtulos, qu\u00e9 se considera navegaci\u00f3n, cu\u00e1l es el contenido principal, qu\u00e9 partes son complementarias y qu\u00e9 regiones se repiten entre p\u00e1ginas.<\/p>\n<p>Esta estructura, cuando se expresa con etiquetas sem\u00e1nticas adecuadas, facilita la navegaci\u00f3n para lectores de pantalla, y mejora la efectividad general del documento para las personas que utilizan herramientas de apoyo a la comprensi\u00f3n.<\/p>\n<h2>Ejemplo completo de body<\/h2>\n<p>A continuaci\u00f3n se muestra un ejemplo realista de &lt;body&gt; en una p\u00e1gina de contenido, utilizando una estructura sem\u00e1ntica t\u00edpica con cabecera, navegaci\u00f3n, contenido principal y pie. El objetivo del ejemplo es que se vea c\u00f3mo se divide el cuerpo en regiones, no que sea un dise\u00f1o definitivo.<\/p>\n<pre>&lt;body&gt;<br \/>&lt;h1&gt;Programar a ciegas&lt;\/h1&gt;<br \/>&lt;p&gt;Accesibilidad, usabilidad y desarrollo.&lt;\/p&gt;<br \/>&lt;nav&gt;<br \/>&lt;a href=\"\/\"&gt;Inicio&lt;\/a&gt;<br \/>&lt;a href=\"\/articulos\/\"&gt;Art\u00edculos&lt;\/a&gt;<br \/>&lt;a href=\"\/contacto\/\"&gt;Contacto&lt;\/a&gt;<br \/>&lt;\/nav&gt;<br \/><br \/>&lt;main&gt;<br \/>&lt;h2&gt;El body de una p\u00e1gina HTML&lt;\/h2&gt;<br \/>&lt;p&gt;Publicado el 19\/01\/2026&lt;\/p&gt;<br \/>&lt;p&gt;<br \/>El elemento &lt;code&gt;&amp;lt;body&amp;gt;&lt;\/code&gt; contiene el contenido principal del documento: texto, enlaces,<br \/>im\u00e1genes y controles interactivos.<br \/>&lt;\/p&gt;<br \/><br \/>&lt;h3&gt;Un enlace dentro del contenido&lt;\/h3&gt;<br \/>&lt;p&gt;<br \/>Un ejemplo de enlace descriptivo puede ser:<br \/>&lt;a href=\"https:\/\/programaraciegas.net\"&gt;Visitar Programar a ciegas&lt;\/a&gt;.<br \/>&lt;\/p&gt;<br \/><br \/>&lt;h3&gt;Una imagen con texto alternativo&lt;\/h3&gt;<br \/>&lt;img src=\"\/img\/ejemplo.png\" alt=\"Captura de una p\u00e1gina mostrando un art\u00edculo con estructura sem\u00e1ntica.\"&gt;<br \/>&lt;\/main&gt;<br \/><br \/>&lt;footer&gt;<br \/>&lt;p&gt;&amp;copy; 2026 Tyflos Accessible Software&lt;\/p&gt;<br \/>&lt;a href=\"\/accesibilidad\/\"&gt;Declaraci\u00f3n de accesibilidad&lt;\/a&gt;<br \/>&lt;\/footer&gt;<br \/>&lt;\/body&gt;<\/pre>\n<p>En este ejemplo se puede ver que el &lt;body&gt; suele mezclar contenido est\u00e1tico (p\u00e1rrafos, t\u00edtulos, im\u00e1genes) con contenido interactivo (enlaces, formularios) y con regiones que permiten comprender r\u00e1pidamente la p\u00e1gina (por ejemplo, navegaci\u00f3n y contenido principal). El elemento <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/main\">&lt;main&gt;<\/a> representa el contenido dominante de la p\u00e1gina y, por buenas pr\u00e1cticas, deber\u00eda ser \u00fanico.<\/p>\n<h2>Estructura sem\u00e1ntica dentro del body<\/h2>\n<p>A la hora de dise\u00f1ar un sitio web hay que tener en cuenta la idea de no es qu\u00e9 se muestra, sino qu\u00e9 significa cada zona. Para expresar esa sem\u00e1ntica, HTML ofrece diversos elementos como &lt;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/header\">header<\/a>&gt;, &lt;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/nav\">nav<\/a>&gt;, &lt;main&gt; y &lt;footer&gt;, que ayudan a identificar regiones t\u00edpicas de una p\u00e1gina, y elementos como &lt;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/article\">article<\/a>&gt; y &lt;section&gt;, que ayudan a organizar el contenido en bloques con sentido propio.<\/p>\n<p>Desde el punto de vista de la accesibilidad, estas etiquetas sem\u00e1nticas suelen traducirse en regiones o <a href=\"https:\/\/www.w3.org\/WAI\/ARIA\/apg\/practices\/landmark-regions\/\">landmarks<\/a> que muchos lectores de pantalla permiten identificar y recorrer con atajos de teclado.<\/p>\n<p>Es importante matizar que el contexto importa: un &lt;header&gt; puede ser un banner cuando est\u00e1 directamente asociado al documento, pero no necesariamente cuando aparece dentro de un &lt;article&gt; o &lt;section&gt;. De forma equivalente, un &lt;footer&gt; dentro de un &lt;article&gt; no representa el pie global de la p\u00e1gina, sino el pie de ese bloque.<\/p>\n<h2>Contenido habitual del body<\/h2>\n<p>Dentro del &lt;body&gt; se declaran, en primer lugar, los t\u00edtulos que organizan la informaci\u00f3n mediante &lt;h1&gt;\u2026&lt;h6&gt;, que permiten expresar jerarqu\u00eda y ofrecer navegaci\u00f3n por encabezados; a continuaci\u00f3n se encuentra el texto en s\u00ed, normalmente en p\u00e1rrafos con &lt;p&gt;, citas con &lt;blockquote&gt; o fragmentos de c\u00f3digo con &lt;code&gt; y &lt;pre&gt;; seguidamente suelen aparecer enlaces con &lt;a&gt;, que conectan el contenido con otras p\u00e1ginas o con secciones internas; y tambi\u00e9n se incluyen recursos no textuales como im\u00e1genes (&lt;img&gt;) o figuras (&lt;figure&gt; y &lt;figcaption&gt;), adem\u00e1s de componentes de interacci\u00f3n como formularios (&lt;form&gt;, &lt;label&gt;, &lt;input&gt;, &lt;button&gt;) y otros controles.<\/p>\n<p>Aunque visualmente todo parece contenido, para un lector de pantalla y para muchas herramientas, la diferencia entre un t\u00edtulo, un p\u00e1rrafo, un bloque de navegaci\u00f3n o un control de formulario es esencial porque define c\u00f3mo se recorre y se comprende la p\u00e1gina. Por eso conviene preferir sem\u00e1ntica nativa de HTML frente a contenedores gen\u00e9ricos (&lt;div&gt;, &lt;span&gt;) cuando exista un elemento apropiado.<\/p>\n<h2>Accesibilidad en el body<\/h2>\n<p>La mayor\u00eda de barreras de accesibilidad aparecen dentro del &lt;body&gt; de la p\u00e1gina ya que aqu\u00ed es donde se incluye el contenido y la funcionalidad y se aplica el dise\u00f1o.<\/p>\n<p>Para evitar los problemas de accesibilidad m\u00e1s graves hay que prestar atenci\u00f3n a los siguientes conceptos:<\/p>\n<p>La <a href=\"https:\/\/www.w3.org\/WAI\/tutorials\/page-structure\/headings\/\">estructura mediante encabezados<\/a> debe reflejar la organizaci\u00f3n real del contenido, porque los t\u00edtulos se usan para navegaci\u00f3n r\u00e1pida y orientaci\u00f3n. Una jerarqu\u00eda coherente y t\u00edtulos que describen secciones, en lugar de textos decorativos, facilita que el usuario entienda el documento sin necesidad de leerlo linealmente.<\/p>\n<p>Las regiones principales deber\u00edan estar identificadas de forma clara, normalmente con elementos sem\u00e1nticos (&lt;nav&gt;, &lt;main&gt;, &lt;footer&gt;) y, cuando sea necesario, con nombres accesibles (utilizando, por ejemplo, aria-label en una navegaci\u00f3n si hay varias). Este enfoque permite saltar directamente a Navegaci\u00f3n, Contenido principal o Pie desde el lector de pantalla.<\/p>\n<p>Todo contenido no textual debe tener una <a href=\"https:\/\/www.w3.org\/WAI\/WCAG21\/Understanding\/non-text-content.html\">alternativa textual<\/a> cuando aporte informaci\u00f3n o cumpla una funci\u00f3n. En im\u00e1genes, el mecanismo principal sigue siendo el atributo alt, que puede describir la imagen o estar vac\u00edo (alt=\u00bb\u00bb) cuando sea decorativa y no deba anunciarse.<\/p>\n<p>En los formularios, el control debe tener un nombre accesible. La forma m\u00e1s robusta suele ser asociar un &lt;label&gt; con el control mediante for\/id, y solo cuando no sea viable se recurre a mecanismos como aria-label o aria-labelledby.<\/p>\n<p>Por \u00faltimo, incluso con buena sem\u00e1ntica, la experiencia se puede degradar si el foco del teclado no sigue un orden l\u00f3gico o si hay elementos interactivos que no son realmente operables con teclado. El &lt;body&gt; es, por tanto, el lugar donde se debe verificar navegaci\u00f3n por tabulador, foco visible, orden de lectura y coherencia entre lo visual y lo program\u00e1tico.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En los art\u00edculos anteriores se present\u00f3 la estructura general de un documento HTML y se profundiz\u00f3 en el prop\u00f3sito del elemento &lt;head&gt;. El elemento &lt;body&gt; representa el contenido del documento: aquello que el usuario percibe como la p\u00e1gina y con lo que interact\u00faa, incluyendo texto, navegaci\u00f3n, im\u00e1genes, formularios y componentes de aplicaci\u00f3n web. El &lt;body&gt; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=1344\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abEl body de una p\u00e1gina HTML\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,542],"tags":[84,333,94],"class_list":["post-1344","post","type-post","status-publish","format-standard","hentry","category-desarrollo","category-html-2","tag-curso","tag-html","tag-web"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/1344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1344"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/1344\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}