[Ovillo] Intercambiar visualmente el orden de dos párrafos
Ramón Corominas
listas en ramoncorominas.com
Mie Mar 11 23:47:47 UTC 2009
Me debo explicar fatal, porque enseguida se desvía el hilo hacia cosas
que no son el meollo del problema técnico, pero en fin, para que quede
claro...
Martin Etxauri escribió:
> personalemente he intentado antes algo así y... creo que es imposible ;)
>
Eso creo yo, pero me gustaría asegurarme <guiño>
> pero en este caso hay algo que no entiendo:
> ¿si el ante título es ante, porque no ponerlo antes del el título
> también en el código?
>
La razón es la semántica. El antetítulo, por muy "ante" que sea,
pertenece al contenido principal, a la noticia en sí; es una
*aclaración* de lo que la noticia expresa, y sólo debe aparecer antes
visualmente porque se empeñan los editores, pero sigue siendo parte de
la noticia. Visualmente no hay demasiado problema en identificar este
antetítulo como una parte integrante de la noticia en sí (está cerca del
título, separada de la interfaz, dentro del mismo espacio visual, etc.);
pero para un usuario de lector de pantalla, que puede navegar yendo
directamente a los encabezados, podría quedar "fuera" de la noticia. El
usuario de JAWS, por ejemplo, iría al encabezado de sección de nivel 1,
y a continuación NO se leería este antetítulo, sino el contenido
principal. El antetítulo quedaría "oculto" a este usuario, salvo que
navegue toda la página de forma lineal, cosa que se considera un
problema grave de usabilidad.
Victor Hugo Arias Valencia escribió:
> Si es un ante-titulo puede ser un H3, y el titulo de la noticia un H2, y
> pues me parece lógico lo que dice martin, si va antes, pues ponerlo antes de
> una vez...
>
El contenido de la página ES esa noticia, y lo correcto semánticamente
es que su <h1> sea el título de la noticia (que será único, sí). Además,
los encabezados, por definición, DEBEN encabezar (describir) contenido,
no se deben usar para crear efectos visuales o de otro tipo. No veo que
tenga ningún sentido semántico colocar un <h3> delante de un <h2> sin
ningún contenido intermedio. ¿Qué contenido describe el <h3>? Recuerdo
la especificación de HTML donde se definen los encabezados [1]:
"A heading element briefly describes the topic of the section it
introduces. Heading information may be used by user agents, for example,
to construct a table of contents for a document automatically."
Traducción: "Un elemento de encabezado describe brevemente el tema de la
sección a la que introduce. La información de los encabezados puede ser
usada por los agentes de usuario, por ejemplo, para construir una tabla
de contenidos del documento de forma automática".
De todos modos, repito que lo de menos es que el orden de los
encabezados deba ser uno u otro, el tema aquí es si se puede o no se
puede alterar el orden visual de las dos filas que representan el <h1> y
el <p>.
Hernán Beati - SaberWeb.com.ar escribió:
> El "orden" de los factores no altera el producto... los encabezados no
> son "enumeraciones" de una lista ordenada, son señales de lo que es más
> o menos "importante" dentro de un documento. Quizás el documento empiece
> con cosas no demasiado "importantes".
No contesto al tema de la otra estructura que propones porque ya he
explicado que en este caso el <h1> es el título principal del documento
(no hay varias noticias en la misma página). Pero sí quiero reiterar que
los encabezados no son sólo "señales". Son elementos que introducen
contenidos y que deben describir los contenidos que introducen. Colocar
un <h3> con un <h2> detrás, sin contenido intermedio, es un uso
inadecuado según la especificación. Y si suponemos que el <h3>
"encabeza" al <h2>, se está alterando el orden de la jerarquía, lo que
va en contra de las WCAG 1.0 y, sencillamente, de la pura lógica.
En todo caso, también me gustaría que os pusierais en la piel de un
usuario de un lector de pantalla como JAWS. Inicialmente puede pulsar la
tecla "1" para ir al primer encabezado de nivel 1 de la página. Leerá el
título de la noticia, y a continuación podrá pulsar Insert + flecha
abajo para continuar leyendo el resto del contenido. ¿Por qué iba a
intentar acceder a encabezados previos de niveles inferiores, si ya ha
encontrado lo que estaba buscando (el contenido principal)? ¿Debería
este usuario pulsar "2" para ir al siguiente encabezado de nivel 2? ¿Con
qué se encontraría? Desde luego no se encontraría con nada que estuviera
*antes* del <h1>, salvo que no hubiera más <h2> en toda la página y
tuviera que volver al principio... Incluso suponiendo que el <h2> que
está antes del <h1> es lo "siguiente" que se encuentra, el lector dirá:
"saltando al principio", y leerá el encabezado, lo que aumentará su
confusión. ¿Por qué está ese encabezado al principio? ¿A dónde
pertenece? ¿Es independiente? Por eso es por lo que es importante
mantener la coherencia de la jerarquía.
> ¿Alguien sabe fehacientemente DONDE se recomienda que DEBAN ir en orden?
> ¿Y qué fuente lo recomienda?
>
En WCAG 1.0, aparte de en el propio punto 3.5 [2], donde se hace una
referencia explícita al orden (aunque sea como un ejemplo): "For
example, in HTML, use H2 to indicate a subsection of H1." (traducción:
"Por ejemplo, en HTML, use H2 para indicar una subsección de H1."); como
ya ha comentado Pablo, en las técnicas para este punto [3] se dice más
claro aún, lo traduzco por si alguien no se lleva bien con el inglés:
"Dado que algunos usuarios exploran el documento navegando sus
encabezados, es importante usarlos apropiadamente para transmitir la
estructura del documento. Los desarrolladores deberían ordenar los
elementos de encabezado de forma apropiada. Por ejemplo, en HTML, los
elementos H2 deberían seguir a los elementos H1, los H3 a los H2, etc.
Los desarrolladores de contenido no deberían "saltar" niveles (esto es,
pasar de H1 directamente a H3)."
Eso sí, lo cierto es que no se dice expresamente "prohibido alterar el
orden", y supongo que es por eso por lo que HERA y otras herramientas
sólo dan una advertencia, y no un error. Pero eso sí, TAW sí que da un
error automático, lo cual queda muy feo si alguien sin los conocimientos
adecuados pasa el TAW a una web certificada...
En cuanto a las WCAG 2.0, aparte de las técnicas mencionadas por Hernán,
yo añadiría el criterio de fallo F43 [4]: "Failure of Success Criterion
1.3.1 due to using structural markup in a way that does not represent
relationships in the content" (Traducción: "Fallo del Criterio de Éxito
1.3.1 debido al uso de elementos de marcado estructural de un modo que
no representa relaciones en el contenido"). Para mí es bastante claro
viendo los ejemplos que los encabezados se deben usar SIEMPRE para
encabezar contenido (como es lógico si pensamos en los usuarios que
realmente los van a usar para acceder a las secciones).
Y aclarado (creo) el tema de los encabezados, la semántica, etc., vuelvo
al problema original, aunque cambiaré un poco el enunciado para no
distorsionar el núcleo de lo que se pretende (en España diríamos para
que la gente no se vaya "por los cerros de Úbeda"):
"Dados dos elementos HTML (<div>, por ejemplo) A y B, contiguos en el
código en el orden A->B, cuyos contenidos y dimensiones no son
determinables a priori, y que deben presentarse visualmente como filas,
una debajo de la otra, ¿existe alguna solución multinavegador, usando
exclusivamente CSS (y cualquier marcado no-semántico adicional que
pudiera requerirse), para alterar visusalmente el orden de las filas sin
alterar el orden en el código?
Por ejemplo, dados:
<div id="A">Esto es un texto de longitud no conocida.</div>
<div id="B">La longitud de este texto tampoco se conoce.</div>
Se debe presentar:
La longitud de este texto tampoco se conoce.
Esto es un texto de longitud no conocida."
Espero que ahora haya quedado todo más claro <guiño>
Un saludín,
Ramón.
[1] HTML 4.01 Specification: 7.5.5. Headings. The h1-h6 elements
http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.5
[2] WCAG 1.0, checkpoint 3.5
http://www.w3.org/TR/WCAG10/#tech-logical-headings
[3] WCAG 1.0 Techniques. 1.2.1. Section headings
http://www.w3.org/TR/WCAG10-HTML-TECHS/#document-headers
[4] WCAG 2.0. Failure F43
http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F43
Más información sobre la lista de distribución Ovillo