CSSLab » Semántica http://www.csslab.cl Un laboratorio de ideas para la web en español Thu, 12 Jan 2012 02:32:35 +0000 en hourly 1 http://wordpress.org/?v= El olvidado rel http://www.csslab.cl/2010/09/02/el-olvidado-rel/ http://www.csslab.cl/2010/09/02/el-olvidado-rel/#comments Thu, 02 Sep 2010 18:19:54 +0000 Jorge Epuñan http://www.csslab.cl/?p=640 ¿Por qué gastarme el tiempo de escribir un artículo sobre un atributo HTML tan antiguo, y por qué ustedes gastarían el suyo en leerlo? Que buenas preguntas para comenzar a redactar un tema donde es necesario aclarar sus usos y recalcar sus funciones, principalmente cuando las escuelas actuales aún son incipientes en enseñar la teoría por detrás de los fundamentos de los web standards. Comencemos con la parte aburrida:

El atributo rel describe la relación del presente documento al link (href) o ancla (name) especificado en el atributo href="". El valor de este atributo puede ser más de uno y al igual que las clases, separados por espacio.

Tiempo de una pausa para un pequeño detalle.

Este atributo dentro de un link <a></a> no es utilizado ni reconocido por ningún browser actualmente (por eso seguramente ha sido menospreciado y olvidado por tanto tiempo).

Entonces, ¿para qué seguir gastando nuestro tiempo? Pues rel="" sí es considerado por los buscadores para obtener más información sobre los enlaces, y es muy difundido mediante microformatos.

Los valores de este atributo para HTML 4.01 son (o eran, como quieras verlo):

alternate
una versión alternativa del documento (por ej. una traducción, página para impresión, etc).
stylesheet
este es familiar; es una hoja de estilos linkeada externamente.
start
el primer documento de un conjunto de documentos. Este valor le indica a los buscadores que la página es considerada el punto de inicio de la colección.
prev, next
documento anterior y siguiente de una misma colección de documentos; podría utilizarse para pre-cargar los documentos siguientes.
contents
una tabla de contenidos para el conjunto de documentos.
index
una página que ofrece un índice para los documentos.
glossary
una página con un glosario de términos para el conjunto de documentos.
copyright
textos legales para todo el documento.
chapter
pagina que abre un capítulo.
section
pagina que abre una sección.
subsection
pagina que abre una sub-sección.
appendix
el apéndice.
help
una página de ayuda (más información, otras fuentes de información, instrucciones, etc).
bookmark
pagina con enlaces a contenido dentro del mismo conjunto de documentos.

Para HTML 5 y a través de los microformatos (prácticamente XFN), se ha privilegiado la relación de enlaces a personas más que a documentos o partes de él. Los siguientes son los -hasta ahora- aprobados para HTML 5:

acquaintance
la persona linkeada ofrece conocimiento anexo al documento actual.
child
la persona referenciada es hija de la persona autora del documento.
co-resident
la persona referenciada vive en la misma casa del autor.
co-worker
la persona referenciada trabaja con el autor.
colleague
la persona referenciada es colega del autor.
contact
el autor considera a la persona referenciada como un contacto.
crush
la persona referenciada atrae al autor.
date
el autor está saliendo con la persona referenciada.
kin
la persona referenciada es parte de la gran familia del autor.
me
la persona referenciada y el autor son la misma persona.
met
el autor conoce a la persona referenciada.
muse
la persona referenciada inspira al autor.
neighbor
la persona referenciada vive cerca o es vecino del autor.
parent
la persona referenciada es padre del autor.
sibling
la persona referenciada es hermano(a) del autor.
spouse
la persona referenciada es cónyugue del autor.
sweetheart
el autor considera al(a) referenciado(a) como su cariño.

A partir de necesidades específicas de fabricantes de browsers y de tecnologías, se han creado algunos valores que son específicos, como:

nofollow
es utilizado por Google para especificar que el spider de indexación no debe seguir ese link.
shortcut icon
reconocido por los browsers modernos para enlazar un archivo favicon.ico.
apple-touch-icon
utilizado por Apple para especificar un archivo ícono para un sitio web.

Pues como leen, este malhogrado atributo está resucitando y nos permite vincular objetos y documentos con una semántica nunca antes vista. Queda en nosotros utilizarla correctamente y sacarle provecho en nuestros proyectos.

 

Links:

]]>
http://www.csslab.cl/2010/09/02/el-olvidado-rel/feed/ 5
Enlaces vacíos y semánticos http://www.csslab.cl/2009/04/06/enlaces-vacios-y-semanticos/ http://www.csslab.cl/2009/04/06/enlaces-vacios-y-semanticos/#comments Mon, 06 Apr 2009 14:40:54 +0000 Jorge Epuñan http://www.csslab.cl/?p=415 Si desayunas jQuery, almuerzas Mootools y cenas Spry entonces seguro te gusta manipular eventos utilizando elementos del DOM ya generados. Deben saber que la etiqueta correcta para click (y doubleclick) es <a> y solamente <a>; todas las demás tienen otros muchos usos pero la única que semánticamente está habilitada para desencadenar una acción mediante un click es… ¡<a>!

Bien eso era lo primero que quería dejar claro; he visto demasiados <li>, <h1>, incluso <p> clickeables. Ahora, a lo que va este artículo es cómo la semántica se está dejando atrás por la comodidad de escribir eventos mediante JS. Me culpo también por caer en lo mismo, pero me interesa ahora mostrarles la mejor solución que he encontrado al respecto.

Pongámonos en un caso de ejemplo. Supongamos que se agrega una función para ejecutar un slideToggle a un enlace; por lo que he visto generalmente esto se hace de 2 maneras:

<a href="#" id="ejecuta_toggle">Ejecutar slideToggle</a>

Cumples con tener un href funcional (no vacío) pero puede hacer que al hacer click la página haga scroll hasta el inicio dado que tienes un ancla vacío en el href y quizás tengas que dar un return false al final de la función del slideToggle, ó

<a href="javascript:void(0)" id="ejecuta_toggle">Ejecutar slideToggle</a>

Que hace que el browser no ejecute el enlace y no se salga de la misma página.

Enfin, son 2 métodos similares y que cumplen con el objetivo primario de ejecutar algun comportamiento mediante Javascript a través de un hyperlink. Pero nuevamente mi pregunta: ¿Qué sucede con la semántica? ¿Cómo le digo al buscador, indexador, robot que ese <a> no es un enlace realmente? ¿Que lo estoy disfrazando para cumplir con mis objetivos?

Complicada pregunta y simple respuesta. Con esta inquitud espero que puedan ir más allá en sus desarrollos; recuerden que un simple click puede desencadenar muchos más eventos que los que tienen planificado para él, eventos que benefician a sus usuarios mediante indexaciones más precisas.

La solución

Entreguen una ancla semántica al hyperlink, pero una ancla sobre sí mismo. Ejemplifico con lo mismo que he estado utilizando:

<a href="#ejecuta_toggle" name="ejecuta_toggle" id="ejecuta_toggle">Ejecutar slideToggle</a>

Con este método conservan la semántica indicando a través del atributo name qué hará ese mismo enlace y al mismo tiempo evitan el movimiento de scroll de la página.

]]>
http://www.csslab.cl/2009/04/06/enlaces-vacios-y-semanticos/feed/ 8
Microformatos 2 contra-ataca http://www.csslab.cl/2008/03/28/microformatos-2-contra-ataca/ http://www.csslab.cl/2008/03/28/microformatos-2-contra-ataca/#comments Fri, 28 Mar 2008 19:38:35 +0000 Jorge Epuñan http://www.csslab.cl/2008/03/28/microformatos-2-contra-ataca/ Tenía pendiente una segunda entrega más completa sobre Microformatos. Espero el primer artículo haya quedado con gusto a poco, ya que ahora la idea es profundizar en el tema. Veremos los distintos tipos de microformatos disponibles, y cómo podemos utilizarlos en la práctica.

Recapitulando, los microformatos nacieron bajo el alero de ampliar estándares semánticos aplicados a la www. La idea es que los indexadores y buscadores sean más inteligentes y entreguen datos más precisos en cuanto nosotros desarrolladores y profesionales dedicados a la web entreguemos mejor esos datos.

¿Y eso en concreto? Ya estaremos viendo resultados, con el anuncio de Yahoo! de incluir soporte a estándares web semánticos, incluyendo los microformatos en sus búsquedas. Excelente iniciativa.

Comencemos la diversión. Estos son los principales formatos disponibles:

hCard

Se usa para representar personas, compañías, organizaciones y lugares, utilizando propiedades vCard y valores en semántico HTML ó XHTML. Ha sido ya implementado en software, por ejemplo, AddressBook de Apple. Es muy común incluir sus vCards en los emails enviados, para tener constante actualización de los datos del destinatario.

En el siguiente ejemplo, verán cómo se construye un hCard, básicamente a base de id‘s y class‘es ya definidas por el estándar:

<div id="hcard-Jorge-Luis-Epuñan-Hernández" class="vcard">
     <a class="url fn n" href="http://www.be-studios.com">
          <span class="given-name">Jorge</span>
          <span class="additional-name">Luis</span>
          <span class="family-name">Epuñan Hernández</span>
     </a>
     <div class="org">Be Studios</div>
     <div class="adr">
          <span class="locality">Santiago</span>
          <span class="country-name">Chile</span>
     </div>
</div>

hCalendar

Definido para formatos de eventos calendarizados, basado en el estándar iCalendar y adaptado para su uso en HTML o XHTML, RSS y cualquier XML. Muy útil para tu blog, si quieres publicar algún evento, como un cumpleaños. Así, los spiders de búsqueda u otros agregadores pueden leer ese evento marcado como microformato, convertirlos automáticamente a formato iCalendar y utilizarlo en iCal, software de Apple que ya utiliza este estándar, para dar un ejemplo.

Ejemplo:

<div class="vevent" id="hcalendar-Mi-Cumpleaños">
     <a class="url" href="http://www.csslab.cl">
          <abbr class="dtstart" title="20080218">February 18th</abbr>,
          <abbr class="dtend" title="20080219"> 2008</abbr>
          <span class="summary">Mi Cumpleaños</span>
     </a>
     <div class="description">
          Mi cumpleaños número 27. Oh sí, anque tengo muchas canas no soy anciano.
     </div>
</div>

hReview

Se usa para reseñas de productos, servicios, empresas, eventos, lugares, etc.

Ejemplo en que un ficticio CCazorla hace un review sobre mi persona:

<div class="hreview">
     <span class="reviewer">
          <span class="fn">CCazorla</span>,
          <abbr class="dtreviewed" title="20080325">25 de Marzo de 2008</abbr>
     </span>
     <a class="person url" href="http://www.csslab.cl"><span class="fn">Jorge Epuñan</span></a>
     <div>Rating: <span class="rating">2</span> de 5</div>
          <blockquote class="description">
          <p>Perfeccionista por naturaleza, siempre busca superarse profesionalmente. Por dentro muy buena persona. Por fuera de personalidad extraña, un tanto psicopata.</p>
     </blockquote>
</div>

Geo

Se basa en la propiedad ‘geo’ del estándar vCard, y agrega nuevas sub-propiedades para completar. Se tratan de id‘s específicos para coordenadas de latitud y longitud, las que se pueden agregar directamente en la página o XML mediante RSS o Atom, y ser indexadas para luego, por ejemplo, mostrar la ubicación directamente en GMaps.

Ejemplo:

<div class="geo">Araxá:
     <span class="latitude">37.0625</span>,
     <span class="longitude">-95.677068</span>
</div>

Existen algunos más, como Dublin Core, XFN, FOAF, pero están aún en etapas de definiciones y aprobaciones, lo que hace ver lejana su estandarización. Pero no dejan de ser buenas intenciones para necesidades reales, en contínuo desarrollo.

¿Mi opinión? Son un gran aporte a la web semántica y la catalogación de la información que componen las páginas porque, sobre todo, Internet se compone prioritariamente de información. Sólo faltan ser lanzados definitivamente y dados a conocer, además de ser integrados en los software de desarrollo y gestores de contenido web (CMS). Finalmente ahí podremos ver su real potencial, con la llamada Web 3.0.

Links:

]]>
http://www.csslab.cl/2008/03/28/microformatos-2-contra-ataca/feed/ 0
Un poco sobre Microformatos http://www.csslab.cl/2008/01/03/un-poco-sobre-microformatos/ http://www.csslab.cl/2008/01/03/un-poco-sobre-microformatos/#comments Thu, 03 Jan 2008 15:01:43 +0000 Jorge Epuñan http://www.csslab.cl/2008/01/03/un-poco-sobre-microformatos/ Un Microformato es una forma de agregar significado semántico a un contenido web que use HTML o XHTML, lo que hace que la información quede indexada. Más específicamente, son porciones de código estándar con el objetivo de insertar contenido semántico aprovechando atributos existentes (como id, class o rel). Para ello se asignan valores a estos atributos que, aparte de darles estilos mediante CSS, puede generar procesos por parte de agentes de usuario (por ejemplo los buscadores).

Los Microformatos son abiertos para que cualquiera pueda utilizarlos, y permiten información de contacto, relaciones sociales, direcciones, coordenadas, etc.

Un ejemplo práctico. Imagínese que tienes un blog y escribes un artículo sobre un restaurant que visitaste recientemente y te encantó el lugar y la comida. Lo quieres recomendar y escribes tu reseña, para finalmente entregar el nombre del lugar, la dirección y si tiene sitio web probablemente la enlaces. Súper, pero: ¿Qué pasa si además, entregas las coordenadas? Así, a través de geo puede ser integrado con Google Maps y poder mostrar gráficamente el camino de cómo llegar al lugar. Así, un lector de tu blog puede leer tu artículo desde su dispositivo móvil favorito, y llegar al restaurant cómodamente siguiendo el mapa directo desde Google, o guardándolo como favorito para consultarlo después.

Su uso sería de la siguiente forma:

<span class="geo"><span class="latitude">-33.42</span>, <span class="longitude">-70.61</span></span>

Se utilizan class que son leídos y entendidos por otras aplicaciones, ya que son estándares por medio de las especificaciones de hCard de Microformats.

¿Y qué ganamos con todo esto?

Microformatos permiten que las personas tengan control sobre sus propios datos e informaciones, a través de la estandarización en el marcado HTML. Esto ayuda a que los buscadores indexen y entreguen información cada vez más precisa y correcta, siempre y cuando ésta haya sido bien formatada . Si creías que ya hacías un buen trabajo aplicando semánticamente las etiquetas HTML a tu contenido, con Microformatos te estarías elevando a lo que se especula será la Web 3.0. Es una iniciativa que aún está en desarrollo, pero que ha dado mucho que hablar y que tiene un futuro promisorio.

Links:

]]>
http://www.csslab.cl/2008/01/03/un-poco-sobre-microformatos/feed/ 8
Tablas porque te quiero http://www.csslab.cl/2007/10/23/tablas-porque-te-quiero/ http://www.csslab.cl/2007/10/23/tablas-porque-te-quiero/#comments Tue, 23 Oct 2007 19:50:36 +0000 Jorge Epuñan http://www.csslab.cl/2007/10/23/tablas-porque-te-quiero/ Siendo un poco justo con <table>, se ha diezmado bastante su personalidad en estos años de incesante impulso semántico. Esta fiel etiqueta ha sido degradado a no más poder por mucho tiempo, y vengo a su rescate.

Como he escrito muchas veces ya a lo largo de este sitio, las tablas son para contener datos tabulados. Sólo para eso, esa información desagradable que suelen acompañar a los gráficos, esos nombres y números que a nadie le gusta. Para eso está <table>, para ordenar esos datos y nada más. Y bueno, ahora que ya tiene su función, aprendamos a utilizarlo bien.

<table>
     <tr>
          <td>Nombre</td>
          <td>Edad</td>
     </tr>
     <tr>
          <td>Tulio</td>
          <td>36</td>
     </tr>
     <tr>
          <td>Patana</td>
          <td>15</td>
     </tr>
</table>

Ver ejemplo 1

Una simple tabla que contiene valores cualesquiera. Ahora, le daremos sentido a sus etiquetas.

<th>

Table Header Cell, una celda de título de una tabla. La utilizamos cuando tenemos el título de una fila o columna, y tiene propiedades por defecto, por ejemplo, su contenido se despliega en bold.

Si la aplicamos a nuestra tabla básica de ejemplo, sería de la siguiente manera:

<table>
     <tr>
          <th>Nombre</th>
          <th>Edad</th>
     </tr>
     <tr>
          <td>Tulio</td>
          <td>36</td>
     </tr>
     <tr>
          <td>Patana</td>
          <td>15</td>
     </tr>
</table>

Ver ejemplo 2

<caption>

Esta etiqueta le da un título a la tabla, como un <legend> lo es para su <fieldset>.

<table>
     <caption>Tabla de edades</caption>
     <tr>
          <th>Nombre</th>
          <th>Edad</th>
     </tr>
     <tr>
          <td>Tulio</td>
          <td>36</td>
     </tr>
     <tr>
          <td>Patana</td>
          <td>15</td>
     </tr>
</table>

summary

Atributo de la etiqueta <table>, especial para lectores de pantalla (no-videntes). Aquí, nos explayamos un poco más que en <caption>, explicando extensamente de qué se trata nuestra tabla.

<table summary="Tabla donde se muestran nombres de personajes de un programa infantil junto con sus edades hipot&eacute;ticas">
     <caption>Tabla de edades</caption>
     <tr>
          <th>Nombre</th>
          <th>Edad</th>
     </tr>
     <tr>
          <td>Tulio</td>
          <td>36</td>
     </tr>
     <tr>
          <td>Patana</td>
          <td>15</td>
     </tr>
</table>

Ver ejemplo 3

<thead> <tfoot> <tbody>

Filas se pueden agrupar en un encabezado (<thead>), un cuerpo de contenido (<tbody>) y un pie (<tfoot>), pudiendo cada grupo contener una o más filas. Con esto se hace más fácil darle estilos a las secciones de nuestra tabla, así nos ahorramos classes en cada celda. Otra ventaja es en la impresión, si ésta es muy larga en Firefox por ejemplo se imprimirán el encabezado y el pie en cada hoja (independiente si el cuerpo es muy extenso y no cabe en la impresión).

<table summary="Tabla donde se muestras nombres de personajes de un programa infantil junto con sus edades hipot&eacute;ticas">
     <caption>Tabla de edades</caption>
     <thead>
          <tr>
               <th>Nombre</th>
               <th>Edad</th>
          </tr>
     </thead>
     <tfoot>
          <tr>
               <td>Bajada</td>
          </tr>
     </tfoot>
     <tbody>
          <tr>
               <td>Tulio</td>
               <td>36</td>
          </tr>
          <tr>
               <td>Patana</td>
               <td>15</td>
          </tr>
     </tbody>
</table>

Ver ejemplo 4

Un detalle es que si usan <thead> y <tfoot>, deben ir juntas y consecutivas, antes de <tbody>. Aún así, <tfoot> se mostrará debajo del contenido de <tbody>. Si no lo necesitan, ocúltenlo con su método favorito.

Está de más escribir que bgcolor, height, width, align y nowrap están obsoletos y no son soportados en HTML 4.01. Además, no se recomienda el uso de background dentro del HTML, para esto se utlizan hojas de estilos CSS.

Links:

]]>
http://www.csslab.cl/2007/10/23/tablas-porque-te-quiero/feed/ 6
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| viagrea onling viagra tablets name and cost levitra and dapoxetine youtube/viagra cialis extra generic viagra accepting american express buy generic viagra online with no prescription with mastercard generic levitra 20 mg levitra pro buy viagra online in ireland is it illegal to order viagra from outside the united states cheapest generic cialis buy cheap levitra overnight delivery cialis wears off airport security generic viagra generic finasteride viagra for sale using paypal ukAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription