<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1531275133681113837</id><updated>2012-06-04T13:37:53.809+02:00</updated><category term='presentaciones'/><category term='accesibilidad legislación'/><category term='enlaces'/><category term='accesibilidad televisión'/><category term='WCAG 2.0'/><category term='plantillas'/><category term='sabías que ...'/><category term='usabilidad textos'/><category term='navegadores trucos'/><category term='reseñas'/><category term='AJAX'/><category term='accesibilidad certificación'/><category term='accesibilidad software'/><category term='frases ...'/><category term='redes sociales'/><category term='accesibilidad general'/><category term='accesibilidad Flash'/><category term='HTML 5'/><category term='Norma UNE 139803'/><category term='documentación'/><category term='iphone'/><category term='DNIe'/><category term='usabilidad metodología'/><category term='recursos'/><category term='accesibilidad Blogger'/><category term='accesibilidad sordos'/><category term='accesibilidad ePub'/><category term='usabilidad color'/><category term='general blog'/><category term='navegadores general'/><category term='Técnicas WCAG 2.0'/><category term='WAI-ARIA'/><category term='off topic'/><category term='XHTML'/><category term='usabilidad software'/><category term='accesibilidad Word'/><category term='usabilidad general'/><category term='usabilidad internacionalización'/><category term='agenda'/><category term='accesibilidad denuncias'/><category term='CSS'/><category term='usabilidad formularios'/><category term='accesibilidad iPad'/><category term='imprescindibles'/><category term='accesibilidad PDF'/><category term='glosario'/><category term='usabilidad iPad'/><category term='navegadores extensiones'/><category term='accesibilidad móvil'/><category term='firma electrónica'/><category term='accesibilidad metodología'/><category term='tecnología asistiva'/><category term='SEO'/><category term='descargas'/><category term='estándares'/><category term='noticias'/><category term='evaluación heurística'/><category term='arquitectura de información'/><category term='accesibilidad multimedia'/><category term='cheatsheet'/><category term='accesibilidad javascript'/><category term='seminarios'/><category term='accesibilidad PowerPoint'/><category term='WCAG 1.0'/><title type='text'>Usable y accesible</title><subtitle type='html'>Consultoría de accesibilidad, usabilidad, arquitectura de información y experiencia de usuario.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/-/AJAX'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/search/label/AJAX'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-7397580036217774920</id><published>2009-03-27T21:55:00.019+01:00</published><updated>2009-06-11T23:26:01.601+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas WCAG 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='WAI-ARIA'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG 2.0'/><title type='text'>AJAX accesible IV: Técnicas ARIA de las WCAG 2.0</title><content type='html'>&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[26-05-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html"&gt;AJAX accesible I&lt;/a&gt;&lt;br /&gt;[07-09-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;AJAX accesible II: WAI-ARIA&lt;/a&gt;&lt;br /&gt;[22-10-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/hijax.html"&gt;AJAX accesible III: HIJAX&lt;/a&gt;&lt;br /&gt;[12-02-08] &lt;a href="http://olgacarreras.blogspot.com/2007/02/wcag-20.html"&gt;WCAG 2.0&lt;/a&gt;&lt;br /&gt;[5-05-09] &lt;a href="http://olgacarreras.blogspot.com/2009/05/tecnicas-wcag-20-para-10-dudas.html"&gt;Técnicas WCAG 2.0 para 10 dudas habituales sobre accesibilidad&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Las &lt;acronym title="Web Content Accessibility Guidelines"&gt;&lt;a href="http://www.w3.org/TR/WCAG20/" hreflang="en"&gt;WCAG 2.0&lt;/a&gt;&lt;/acronym&gt; (Web Content Accessibility Guidelines 2.0) incluyen cuatro técnicas (&lt;a lang="en" href="http://www.w3.org/TR/WCAG20-TECHS/aria.html" hreflang="en"&gt;Techniques for WCAG 2.0: Techniques and Failures for Web Content Accessibility Guidelines 2.0&lt;/a&gt;) específicas relacionadas con WAI- ARIA.&lt;br /&gt;&lt;br /&gt;Estas técnicas son de momento &lt;span lang="en"&gt;"advisory technique"&lt;/span&gt;, pero serán &lt;span lang="en"&gt;"sufficient technique"&lt;/span&gt; en cuanto la especificación alcance el estado de recomendación, tal y como se advierte en las mismas.&lt;br /&gt;&lt;br /&gt;&lt;h2 lang="en"&gt;ARIA1: Using Accessible Rich Internet Application describedby property to provide a descriptive, programmatically determined label&lt;/h2&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;cite lang="en"&gt;The purpose of this technique is to demonstrate how to use the Accessible Rich Internet Application (ARIA) &lt;strong&gt;descibedby&lt;/strong&gt; property to provide descriptive information about a user interface control that can be programmatically determined by user agents. &lt;br /&gt;&lt;br /&gt;ARIA techniques provide the ability to add programmatically determined information to an element which can provide additional information about the element. The user agent can provide this additional information to assistive technology for presentation to the user.&lt;/cite&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;p&gt;The link in the next paragraph has been updated with the Accessible Rich Internet Applications describedby property to provide more information about the link&amp;lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&gt;&amp;lt;span &lt;strong class="naranja"&gt;id="icebergInfo"&lt;/strong&gt;&gt;Alaskan storm cracks iceberg in Antarctica. &amp;lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A bad storm in Alaska last October generated an ocean swell that broke apart a giant iceberg near Antarctica six days later, U.S. researchers reported on Monday.&lt;br /&gt;&lt;br /&gt;&amp;lt;a href="http://www.sciencemag.com/iceberg.html" id="iceberg" &lt;strong  class="naranja"&gt;waistate:describedby="icebergInfo"&lt;/strong&gt;&gt;More Info...&amp;lt;/a&gt;.&lt;br /&gt;&amp;lt;/p&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2  lang="en"&gt;ARIA2: Identifying required fields with the "required" property &lt;/h2&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;cite  lang="en"&gt;The objective of this technique is to indicate that the completion of a user input field is mandatory in a programmatically determinable way. &lt;strong&gt;The WAI-ARIA required state indicates that user input is required before submission&lt;/strong&gt;. The "required" state can have values of "true" or "false". For example, if a user must fill in an address field, then "required" is set to true.&lt;br /&gt;&lt;br /&gt;Note: The fact that the element is required is often visually presented (such as a sign or symbol after the control). Using the "required" property makes it much easier for user agents to pass on this important information to the user in a user agent-specific manner.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;label for="test"&gt;Test (required)&amp;lt;/label&gt;&lt;br /&gt;&amp;lt;input name="test" id="test" &lt;strong class="naranja"&gt;aaa:required="true"&lt;/strong&gt; /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2  lang="en"&gt;ARIA3: Identifying valid range information with the "valuemin" and "valuemax" properties&lt;/h2&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;cite  lang="en"&gt;The objective of this technique is to provide &lt;strong&gt;information about the allowable range of an entry field&lt;/strong&gt; in a programmatically determinable way. The WAI-ARIA valuemin and valuemax states provide the minimum and maximum (respectively) values that may be provided by the user. User agents will not permit users to enter values outside that range, or will generate a validation error if users do so.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;form action="http://example.com/submit"&gt;&lt;br /&gt;  &lt;br /&gt;&amp;lt;p&gt;&amp;lt;label for="test"&gt;Enter a date in 2007:&amp;lt;/label&gt;&lt;br /&gt;&amp;lt;input name="test" id="test" &lt;strong class="naranja"&gt;aaa:valuemin="2007-01-01" aaa:valuemax="2007-12-31" aaa:datatype="xsd:date"&lt;/strong&gt; /&gt;&lt;br /&gt;&amp;lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&gt;&amp;lt;input type="submit" value="Submit" /&gt;&amp;lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/form&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2  lang="en"&gt;ARIA4: Using Accessible Rich Internet Applications to programmatically identify form fields as required&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;La manera de implementar la técnica ARIA2 de forma dinámica se ejemplifica así:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt; &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt; //&amp;lt;![CDATA[&lt;br /&gt; &lt;br /&gt; &lt;strong class="naranja"&gt;// array or ids on the required fields on this page&lt;/Strong&gt;&lt;br /&gt; var requiredIds = new Array( "firstName", "lastName");&lt;br /&gt; &lt;br /&gt;&lt;strong class="naranja"&gt;// function that is run after the page has loaded &lt;br /&gt;to set the required role on each of the &lt;br /&gt; //elements in requiredIds array of id values&lt;/strong&gt;&lt;br /&gt; function setRequired(){&lt;br /&gt;  if (requiredIds){&lt;br /&gt;   var field;&lt;br /&gt;   for (var i = 0; i&amp;lt; requiredIds.length; i++){&lt;br /&gt;    field = document.getElementById(requiredIds[i]);&lt;br /&gt;    setAttrNS(field, "required", "true");&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;strong class="naranja"&gt;&lt;br /&gt; // method to set the attribute values based on the capability &lt;br /&gt;of the browser.  &lt;br /&gt; // Use setAttributeNS if it is available,&lt;br /&gt; // otherwise append a namespace indicator string to the &lt;br /&gt;attribute and set its value.&lt;/strong&gt;&lt;br /&gt; function setAttrNS(elemObj, theAttr, theValue){&lt;br /&gt;  if (typeof document.documentElement.setAttributeNS&lt;br /&gt;      != 'undefined') {&lt;br /&gt;   elemObj.setAttributeNS&lt;br /&gt;   ("http://www.w3.org/2005/07/aaa", theAttr, theValue);&lt;br /&gt;  }else{&lt;br /&gt;   elemObj.setAttribute("aaa:" + theAttr, theValue);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; window.onload=setRequired;&lt;br /&gt;//]]&amp;gt;&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;br /&gt; &amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;p&amp;gt;Please enter the following data.  &lt;br /&gt; Required fields have been programmatically identified &lt;br /&gt; as required and  marked with an asterisk (*) following &lt;br /&gt; the field label.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;form action="submit.php"&amp;gt;&lt;br /&gt; &amp;lt;p&amp;gt;&lt;br /&gt; &amp;lt;label for="firstName"&amp;gt;First Name *: &amp;lt;/label&amp;gt;&lt;br /&gt; &amp;lt;input type="text" name="firstName" &lt;br /&gt;    id="firstName" value="" /&amp;gt;&lt;br /&gt; &amp;lt;label for="lastName"&amp;gt;Last Name *: &amp;lt;/label&amp;gt;&lt;br /&gt; &amp;lt;input type="text" name="lastName"&lt;br /&gt;    id="lastName"  value="" /&amp;gt;&lt;br /&gt; &amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;/form&amp;gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-7397580036217774920?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/7397580036217774920/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/7397580036217774920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/7397580036217774920'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html' title='AJAX accesible IV: Técnicas ARIA de las WCAG 2.0'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-9208243538566164240</id><published>2009-03-04T16:23:00.016+01:00</published><updated>2009-03-14T22:22:52.736+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='WCAG 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad móvil'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML 5'/><title type='text'>Noticias... (16)</title><content type='html'>Estas son las noticias que han llamado mi atención últimamente:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;WCAG 2.0&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Esta semana me sorprendía conocer la web &lt;a href="http://codexexempla.org/articulos/2008/traduccion_wcag_2.php"&gt;Codexexempla&lt;/a&gt;, que dispone de uno de los recursos más codiciados en la actualidad, la &lt;a href="http://codexexempla.org/articulos/2008/traduccion_wcag_2/pautas_2.0.htm"&gt;traducción (no oficial) de las WCAG 2.0&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Otras traducciones interesantes que ofrece son:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://codexexempla.org/articulos/2009/comparativa_pautas_1_2/comparativa_pautas_1_y_2.htm"&gt;"Comparativa entre los puntos de comprobación de las Pautas de Accesibilidad de Contenido Web 1.0 y las Pautas 2.0, agrupados por prioridades"&lt;/a&gt; de la versión en inglés del 15 de diciembre de 2008.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://codexexempla.org/articulos/2008/traduccion_wcag_samurai_2/errata.htm"&gt;"Fe de erratas de las Pautas de Accesibilidad de Contenido Web del WCAG Samurai"&lt;/a&gt;,  [traducción] V1.0 de 26 de febrero de 2008&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.itakora.com/2009/03/%c2%bfque-pasa-con-las-wcag-2/"&gt;"¿Qué pasa con las WCAG 2?"&lt;/a&gt;, se pregunta Olga Revilla, y en consecuencia ha puesto en marcha la web &lt;a href="http://www.oneguidelineaday.com/"&gt;One Guideline a Day&lt;/a&gt; en la que pretende &lt;cite&gt;ir analizando una por una las pautas, criterios de éxito, técnicas y errores comunes que vienen publicados en la WCAG 2, comparándolo con las anteriores y aportando un poquito de mi experiencia en este campo. &lt;/cite&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relacionado:&lt;/strong&gt; &lt;a href="http://olgacarreras.blogspot.com/2007/02/wcag-20.html"&gt;WCAG 2.0&lt;/a&gt; en este blog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Novedades W3C&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Se han actualizado los siguientes borradores:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/ATAG20/" lang="en" hreflang="en"&gt;Authoring Tool Accessibility Guidelines 2.0&lt;/a&gt; W3C Working Draft 17 February 2009.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/html5/"  lang="en" hreflang="en"&gt;HTML 5.&lt;/a&gt; W3C Working Draft 12 February 2009 y &lt;a href="http://www.w3.org/TR/html5-diff/"  lang="en" hreflang="en"&gt;HTML 5 differences from HTML 4&lt;/a&gt; W3C Working Draft 12 February 2009&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/wai-aria/"  lang="en" hreflang="en"&gt;Accessible Rich Internet Applications (WAI-ARIA) 1.0&lt;/a&gt; W3C Working Draft 24 February 2009&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relacionados:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://olgacarreras.blogspot.com/2008/01/html-5.html"&gt;HTML 5&lt;/a&gt; en este blog.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;Ajax accesible II: WAI-ARIA&lt;/a&gt; en este blog.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Dominios .tel&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.eweekeurope.es/noticias/llegan-los-dominios-tel-452"&gt;"Llegan los dominios .tel"&lt;/a&gt; eWeek Europe&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.ticpymes.es/Noticias/Marketing/200902020030/Llega-el-dominio-tel.aspx"&gt;"Llega el dominio .tel"&lt;/a&gt; TIC Pymes&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Móvil&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.computing.es/Noticias/200902060028/Banco-Popular-integra-iPhone-3G-en-su-banca-movil.aspx"&gt;"Banco Popular integra Iphone 3G en su banca móvil"&lt;/a&gt; (leído en Computing.es) como ya lo hizo antes Caixa Penedès (&lt;a href="http://olgacarreras.blogspot.com/2008/07/iphone-y-accesibilidad.html"&gt;Iphone y accesibilidad&lt;/a&gt; en este blog)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.librodeapuntes.es/2009/03/01/instant-mobilizer-dot-mobi"&gt;"Instant Mobilizer de dot.mobi"&lt;/a&gt; el Libro de Apuntes: &lt;cite&gt;un servicio que moviliza tu página web, es decir, la transforma automáticamente para que se vea correctamente desde los teléfonos móviles.&lt;br /&gt;&lt;/cite&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Sectores&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.usolab.com/wl/2009/02/pensando-la-banca-del-futuro.php"&gt;"Pensando la banca del futuro"&lt;/a&gt;, Usolab: &lt;cite&gt;se ha creado el &lt;a href="http://cfb.media.mit.edu/"&gt;Center for Future Banking&lt;/a&gt;, un centro donde se "investigará cómo las nuevas tecnologías y los conocimientos sobre el comportamiento humano pueden transformar la experiencia de los clientes y elevar el papel del banco en su vida financiera", es decir, simplificar la vida de la gente y hacer la experiencia con la banca más satisfactoria.&lt;/cite&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.acceso.com/display_release.html?id=52857"&gt;"Las empresas aseguradoras impulsarán la accesibilidad de sus páginas web"&lt;/a&gt; en Acceso.com&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-9208243538566164240?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/9208243538566164240/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2009/03/noticias-16.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/9208243538566164240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/9208243538566164240'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2009/03/noticias-16.html' title='Noticias... (16)'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-1110227715919663734</id><published>2008-03-06T13:45:00.001+01:00</published><updated>2009-04-13T22:09:56.268+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recursos'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='cheatsheet'/><title type='text'>Prototype 1.6.0.2 CheatSheet</title><content type='html'>La última versión de &lt;a href="http://www.prototypejs.org/" target="_blank"&gt;Prototype, la 1.6.0.2&lt;/a&gt;, del 25 de Enero de 2008, &lt;a target="_blank" href="http://attic.scripteka.com/prototype_cheatsheet_1.6.0.2.pdf"&gt;ya tiene CheatSheet&lt;/a&gt; [&lt;a href="http://www.anieto2k.com/" target="_blank"&gt;vía anieto2k&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Esta versión es compatible con:&lt;br /&gt;&lt;br /&gt;Mozilla Firefox ≥ 1.5 &lt;br /&gt;Microsoft Internet Explorer ≥ 6.0 &lt;br /&gt;Apple Safari ≥ 2.0 &lt;br /&gt;Opera ≥ 9.25 &lt;br /&gt;&lt;br /&gt;Para los amantes de las CheatSheet, encuentro también &lt;a href="http://www.anieto2k.com/" target="_blank"&gt;vía anieto2k&lt;/a&gt; una recopilación muy interesante: &lt;a href="http://www.bookmarkbliss.com/programming/the-developer-cheat-sheet-compilation/" target="_blank"&gt;The Developer Cheat Sheet Compilation&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Otra recopilación de CheatSheet es &lt;a href="http://www.digilife.be/quickreferences/quickrefs.htm" target="_blank"&gt;Quick Reference Cards &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Eduardo Sanchez publica también hoy otra recopilación: &lt;a href="http://edusanver.wordpress.com/2008/02/06/top-100-cheatsheets-para-web-developers/" target="_blank"&gt;Top 100 Cheat Sheet para web developers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Me apunto aquí las que más me interesan:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://floele.flyspray.org/htmlcheatsheet-ncr.pdf" target="_blank"&gt;XHTML&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.ilovejackdaniels.com/css_cheat_sheet.pdf" target="_blank"&gt;CSS&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.ilovejackdaniels.com/javascript_cheat_sheet.pdf" target="_blank"&gt;JavaScript&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a  target="_blank" href="http://www.ilovejackdaniels.com/regular_expressions_cheat_sheet.pdf"&gt;Expresiones regulares&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.digilife.be/quickreferences/QRC/XSL%20Transformations%20(XSLT)%201.0.pdf" target="_blank"&gt;XSL&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.digilife.be/quickreferences/QRC/XML%20Syntax%20Quick%20Reference.pdf" target="_blank"&gt;XML&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.petefreitag.com/cheatsheets/ascii-codes/" target="_blank"&gt;ASCII Character Codes Table&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.scottklarr.com/topic/108/photoshop-cheat-sheets/" target="_blank"&gt;Photoshop&lt;/a&gt; y &lt;a href="http://ceslava.com/blog/descarga-los-atajos-de-teclado-de-photoshop-cs3-o-cs2-optimizados/" target="_blank"&gt;Atajos de teclado&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.pdf"&gt;HTML 5 Canvas&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://anton.shevchuk.name/wp-content/uploads/2008/07/seo-cheatsheet.png"&gt;SEO&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-1110227715919663734?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/1110227715919663734/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2008/03/prototype-1602-cheatsheet.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/1110227715919663734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/1110227715919663734'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2008/03/prototype-1602-cheatsheet.html' title='Prototype 1.6.0.2 CheatSheet'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-5888674495866077621</id><published>2008-02-28T09:05:00.000+01:00</published><updated>2008-07-28T12:26:18.051+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usabilidad general'/><category scheme='http://www.blogger.com/atom/ns#' term='imprescindibles'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Imprescindibles... (6)</title><content type='html'>&lt;strong&gt;Sobre Quirks Mode&lt;/strong&gt; o modo "chapucero".&lt;br /&gt;&lt;br /&gt;[Si no sabes lo que es, lo explicaba en: &lt;a href="http://olgacarreras.blogspot.com/2007/02/plantilla-base-xhtml.html#doctype" target="_blank"&gt;Plantilla Base XHTML&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target=_blank"" href="http://www.anieto2k.com/2006/05/09/problemas-con-ajax-y-quirksmode/"&gt;Problemas con AJAX y Quirks Mode&lt;/a&gt; de anieto2k&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.mozilla.org/es/docs/Migrar_aplicaciones_desde_Internet_Explorer_a_Mozilla#Modo_quirks_vs._modo_est.C3.A1ndar" target="_blank"&gt;Modo quirks vs. modo estándar&lt;/a&gt; en Mozilla Developer Center&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.anieto2k.com/2008/01/23/internet-explorer-80-modo-super-estandar/" target="_blank"&gt;Internet Explorer 8.0 modo super estándar&lt;/a&gt; de anieto2k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-5888674495866077621?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/5888674495866077621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2008/02/imprescindibles_28.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/5888674495866077621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/5888674495866077621'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2008/02/imprescindibles_28.html' title='Imprescindibles... (6)'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-4753596406179134260</id><published>2008-02-28T09:00:00.000+01:00</published><updated>2008-07-28T12:15:39.667+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad certificación'/><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad legislación'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Noticias... (9)</title><content type='html'>&lt;a target="_blank" href="http://www.technosite.es/detalles_noticia.asp?id=69"&gt;El portal público de la CAM obtiene la certificación Euracert&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;La CAM es la segunda entidad financiera en obtener &lt;a href="http://olgacarreras.blogspot.com/2007/04/metodologa-certificaciones-y-entidades.html" target="_blank"&gt;esta certificación&lt;/a&gt;. La primera fue Bankinter en marzo del 2007.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.boe.es/boe/dias/2008/02/25/pdfs/A11086-11090.pdf" target="_blank"&gt;ORDEN PRE/446/2008, de 20 de febrero, por la que se determinan las especificaciones y características técnicas de las condiciones y criterios de accesibilidad y no discriminación establecidos en el Real Decreto 366/2007, de 16 de marzo.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/TR/2008/WD-XMLHttpRequest2-20080225/" target="_blank"&gt;XMLHttpRequest Level 2. W3C Working Draft 25 February 2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-4753596406179134260?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/4753596406179134260/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2008/02/noticias.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/4753596406179134260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/4753596406179134260'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2008/02/noticias.html' title='Noticias... (9)'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-8520136702104493966</id><published>2007-10-31T11:21:00.000+01:00</published><updated>2007-10-31T11:35:48.848+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Prototype y Explorer 5</title><content type='html'>El &lt;strong&gt;objeto XMLHTTPRequest&lt;/strong&gt;, base de lo que es AJAX, existe desde Explorer 5. Esto quiere decir que un desarrollo AJAX funcionará en Explorer 5.&lt;br /&gt;&lt;br /&gt;Podríamos pensar que Prototype, una de las librerías más populares y utilizadas en desarrollos AJAX, sería compatible con Explorer 5. No hay documentación que lo afirme o lo niegue, pero parece lo razonable.&lt;br /&gt;&lt;br /&gt;Bien, la triste conclusión de hoy es que &lt;strong&gt;la implementación de Prototype no es compatible con Explorer 5&lt;/strong&gt;. La única confirmación a mi conclusión la he encontrado en &lt;a href="http://www.deltablog.com/2006/03/31/listado-de-librerias-ajaxdhtml-portabilidad-y-compatibilidad-con-los-navegadores/" target="_blank"&gt;Listado de librerías Ajax/DHTML. Portabilidad y compatibilidad con los navegadores&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No se acaba el mundo, mis cinco mil usuarios de Explorer 5 serán derivados a la versión accesible, la de toda la vida, con recarga de páginas, pero es una lástima que a pesar de que Ajax funciona en Explorer 5, no se haya tenido en cuenta este navegador en la implementación de Prototype.&lt;br /&gt;&lt;br /&gt;¿Alguien me alegra el día y me dice que usa Prototype en Explorer 5 sin problemas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-8520136702104493966?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/8520136702104493966/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2007/10/prototype-y-explorer-5.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/8520136702104493966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/8520136702104493966'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2007/10/prototype-y-explorer-5.html' title='Prototype y Explorer 5'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-8365798972405820504</id><published>2007-10-22T14:20:00.001+02:00</published><updated>2009-03-27T23:25:58.138+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad javascript'/><title type='text'>HIJAX</title><content type='html'>&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[26-05-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html"&gt;AJAX accesible I&lt;/a&gt;&lt;br /&gt;[07-09-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;AJAX accesible II: WAI-ARIA&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;El otro día me preguntaban qué era &lt;strong&gt;Hijax&lt;/strong&gt;, si era la evolución de AJAX, o algo nuevo, o ¡qué era!, muy preocupado por si se estaba perdiendo algo referente a AJAX. No me voy a extender mucho, ya habló de Hijax Fran Tarifa el otro día en &lt;a href="http://accesibilidadweb.blogspot.com/2007/10/hijax-ajax-accesible.html" target="_blank"&gt;Hijax: ¿Ajax accesible?&lt;/a&gt; (aunque no estoy de acuerdo con sus conclusiones)&lt;br /&gt;&lt;br /&gt;Hijax &lt;strong&gt;es una metodología&lt;/strong&gt; a seguir a la hora de realizar aplicaciones AJAX, que consiste en aplicar a estos desarrollos la estrategia que se conoce como &lt;a href="http://es.wikipedia.org/wiki/Progressive_Enhancement" target="_blank"&gt;"mejora progresiva"&lt;/a&gt;, propia del diseño web, para que dichos desarrollos AJAX sean accesibles.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Jeremy Keith&lt;/strong&gt; ya hablaba de aplicar la "mejora progresiva" a AJAX en marzo de 2005, antes de que se le ocurriera bautizar a esta metodología como Hijax, en su artículo &lt;a href="http://adactio.com/journal/959" target="_blank"&gt;Progressive enhancement with Ajax&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Parece que esto de Hijax es nuevo, pero Jeremy no se inventó el término ayer, sino el 1 de enero de 2006 a las 7:40, en el artículo &lt;a href="http://domscripting.com/blog/display/41" target="_blank"&gt;Hijax&lt;/a&gt;. Supongo que esa Nochevieja fue sonada para sentarse a primera hora a hablar de Hijax [bromilla].&lt;br /&gt;&lt;br /&gt;El caso es que últimamente se oye hablar mucho de Hijax, como algo nuevo, lo cual se debe en parte a sus ponencias como "&lt;a href="http://adactio.com/extras/slides/bulletproof.pdf"&gt;Bulletproof AJAX (Ajax a pruebas de balas)&lt;/a&gt;" y en parte a ese curioso boca a boca exponencial (&lt;em&gt;buzz&lt;/em&gt;) propio de Internet.&lt;br /&gt;&lt;br /&gt;Esto de bautizar a todo con un nombre gancho es muy habitual (AJAX, Web 2.0, etc.) y muy eficaz para estar en boca de todos (o en blog de todos, como tendríamos que decir hoy en día), pero bueno, no está mal si eso ayuda a difundir buenas prácticas. Hay que reconocerle a Jeremy Keith que lleva ya años abogando por hacer las cosas bien, es simplemente que me hace gracia como de repente todo el mundo habla de algo cotidiano y habitual como si fuera muy novedoso por tener un nombre vistoso. Él mismo ironizaba:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="esp"&gt;&lt;cite&gt;I’ve even got a nice shiny buzzword for this technique: Hijax. (&lt;a href="http://domscripting.com/blog/display/41"&gt;Hijax&lt;/a&gt;,  Jeremy Keith) &lt;strong&gt;[1]&lt;/strong&gt;&lt;/cite&gt;&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;Pero dime, &lt;strong&gt;¿en qué consiste eso de Hijax?&lt;/strong&gt; Pues me temo que te va a decepcionar un poco, porque no es más que aplicar aquello que venimos recomendando una y otra vez: JavaScript no intrusivo a la hora de plantear alternativas accesibles.&lt;br /&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;El resumen es el siguiente:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. Haz que la aplicación funcione sin AJAX mediante peticiones normales al servidor que recarguen la página.&lt;br /&gt;&lt;br /&gt;2. Ahora añade JavaScript no intrusivo para incluir el código AJAX, de este modo, si el &lt;em&gt;user-agent&lt;/em&gt; no admite JavaScript o está desactivado, la aplicación seguirá funcionando correctamente, puesto que el código es invisible y no afecta al funcionamiento de la página.&lt;br /&gt;&lt;br /&gt;Según dice Jeremy, la clave es: &lt;em&gt; Plan for Ajax from the start. Implement Ajax at the end.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Nada nuevo, pero si llamarle Hijax ayuda a difundir las buenas prácticas de la programación AJAX, pues nada: viva Hijax! todos a aplicar Hijax! es decir, a seguir haciendo las cosas bien.&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[1]&lt;/strong&gt; &lt;br /&gt;&lt;blockquote class="esp"&gt;&lt;cite&gt;&lt;br /&gt;&lt;em&gt;There seems to be an inherent paradox in saying that you need to think about your server-side architecture but you should just be building old-fashioned page by page submissions before &lt;strong&gt;hijacking&lt;/strong&gt; them with Ajax&lt;/em&gt; (&lt;a href="http://domscripting.com/blog/display/41"&gt;Hijax&lt;/a&gt;,  Jeremy Keith) &lt;br /&gt;&lt;/cite&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hijax, vendría del término "hijack", secuestrar.&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[26-05-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html"&gt;AJAX accesible I&lt;/a&gt;&lt;br /&gt;[07-09-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;AJAX accesible II: WAI-ARIA&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-8365798972405820504?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/8365798972405820504/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/hijax.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/8365798972405820504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/8365798972405820504'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/hijax.html' title='HIJAX'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-4840904833501589998</id><published>2007-09-07T13:07:00.017+02:00</published><updated>2012-02-28T13:08:31.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='WAI-ARIA'/><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad javascript'/><title type='text'>AJAX Accesible (II): WAI-ARIA</title><content type='html'>&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[26-05-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html"&gt;AJAX accesible I&lt;/a&gt;&lt;br /&gt;[22-10-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/hijax.html"&gt;AJAX accesible III: HIJAX&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Nota 2012&lt;/strong&gt;: cuando en el artículo se ponen ejemplos como &lt;code&gt;x2:role="role:checkbox" aaa:checked="true"&lt;/code&gt; actualmente se marcan como &lt;code&gt;role=”checkbox” aria-checked="true"&lt;/code&gt;. Sobre la simplificación actual en la especificación de roles y atributos: &lt;a href="http://simplyaccessible.com/article/break-the-rules/" lang="en" hreflang="en"&gt;Knowing when to break the rules&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Por otra parte, en el artículo &lt;a href="http://olgacarreras.blogspot.com/2012/02/html-5-y-accesibilidad.html"&gt;HTML5 y accesibilidad&lt;/a&gt; hablo sobre el soporte de Aria Roles por los diferentes lectores de pantalla y sobre cómo usarlos con las nuevas etiquetas semánticas de HTML5.&lt;/p&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;p&gt;Cuando abordé hace unos meses el tema de &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html" target="_blank"&gt;AJAX Accesible&lt;/a&gt; nombré de pasada WAI-ARIA, sin profundizar más en el tema, puesto que me parecía suficientemente importante para abordarlo en un futuro en otro artículo diferente.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A raíz de un correo en el que se me preguntaba sobre el tema, influenciada por el hecho de que en el último mes he estado dedicada en exclusiva a desarrollos AJAX, y consciente de que hay muy poca documentación o artículos sobre el tema (y menos aún en español), me ha parecido que era un buen momento para escribir algo al respecto. Espero que le sea de utilidad al lector que me preguntaba por este tema y a cualquiera que se dejé caer por aquí. Y ya de paso, me gustaría saber si alguien está aplicándolo en la práctica.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="problema" id="problema"&gt;&lt;/a&gt;Cuál es el problema&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Pongamos un ejemplo. Nos serviría cualquiera en el cual se modificara dinámicamente una página web. Imaginemos el siguiente: &lt;/p&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;p&gt;Tenemos un enlace o botón ("Ver última noticia") en nuestra página. Al pulsarlo se escribe una noticia mediante la modificación del &lt;em&gt;innerHTML&lt;/em&gt; del &lt;em&gt;div&lt;/em&gt; que la contiene.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Me da igual que se utilice o no AJAX, puesto que el problema es el mismo en ambos casos, pero imaginemos que recuperamos el texto de la noticia mediante AJAX. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Es sólo un ejemplo, no entraremos en si es o no usable.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Con un navegador que admita javascript, que lo tenga activo y soporte AJAX&lt;/strong&gt;, no tendremos ningún problema: el texto de la noticia se escribirá dinámicamente.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Además hemos hecho los deberes (ver &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html" target="_blank"&gt;AJAX Accesible&lt;/a&gt;) y si el usuario trabaja con un &lt;em&gt;user-agent&lt;/em&gt; &lt;strong&gt; que no admita javascript, no lo tenga activo o no soporte AJAX&lt;/strong&gt;, no tendrá problemas, puesto que la página se recargará para mostrarle de nuevo la página con la noticia (o cualquier otra alternativa que se decida).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Podríamos pensar que nuestra página ya no presenta problemas pues hemos tenido en cuenta su accesibilidad, hemos proporcionado una alternativa, de modo que todos los usuarios puedan leer la noticia.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Y sin embargo sigue existiendo un problema de accesibilidad, puesto que hay usuarios que &lt;strong&gt;no podrán leer esa noticia&lt;/strong&gt;, ¿quiénes? Haz la prueba. Eres un usuario que tienes por ejemplo Explorer (o cualquier otro navegador que soporte javascript y lo tenga activo). Pero además eres invidente y usas, por ejemplo, JAWS como lector de pantalla. Cuando pulsas "Ver última noticia" esta aparece en la página gracias a AJAX sin ningún problema, pero tú no puedes verla, &lt;strong&gt;¿te lee JAWS el texto de la noticia?&lt;/strong&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;La &lt;strong&gt;respuesta es NO&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="soluccion" id="soluccion"&gt;&lt;/a&gt;Cuál es la solución: WAI-ARIA&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; (&lt;span lang="en"&gt;Accessible Rich Internet Applications&lt;/span&gt;) Suite incluye los siguientes documentos:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;La hoja de ruta&lt;/strong&gt;: &lt;a href="http://www.w3.org/TR/aria-roadmap/" target="_blank"&gt;Roadmap for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt;  Roadmap)&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;WAI-ARIA Roles&lt;/strong&gt; (en español se ha traducido "roles" por "funciones"): &lt;a href="http://www.w3.org/TR/wai-aria/" target="_blank"&gt;Roles for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; Roles)&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;WAI- States&lt;/strong&gt; (estados y propiedades): &lt;a target="_blank" href="http://www.w3.org/TR/wai-aria/"&gt;States and Properties Module for Accessible Rich Internet Applications&lt;/a&gt; (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; States and Properties). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;[nota 2009: &lt;a href="http://www.w3.org/TR/wai-aria/"&gt;se han actualizado estos documentos&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="descripcion" id="descripcion"&gt;&lt;/a&gt;En qué consiste la solución&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;a name="AT" id="AT"&gt;&lt;/a&gt;Cuando hable de AT me referiré a cualquier tecnología asistiva (&lt;span lang="en"&gt;Assistive Technology&lt;/span&gt; (&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;)): lectores de pantalla, software de dictado o teclados de pantalla.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="esp"&gt;&lt;a name="tabindex" id="tabindex"&gt;&lt;/a&gt;Tabindex&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Lo primero que necesita saber la &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt; es &lt;strong&gt;qué objeto tiene el foco&lt;/strong&gt;. &lt;br /&gt;Necesitamos que aquellos objetos que vayan a cambiar dinámicamente puedan coger el foco, para ello utilizamos &lt;code&gt;tabindex="-1"&lt;/code&gt;.&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite lang="en"&gt;Virtually all adaptive technology solutions, such as screen readers and onscreen keyboards, need to know what object currently has focus. […] HTML 4.01 and XHTML 1.x limit script authors to only being able to provide focus to form and anchor elements yet the Document Object Model Specification allows all elements to receive events including keyboard events. This means that HTML, by design prohibits script authors from making all HTML elements keyboard accessible. This single problem has impacted the usability of Web pages whereas gaining access to all elements means using the tab key on desktop browsers. This slow, unproductive, approach makes it difficult for portal navigation whereas all active elements must be tabbed through to get to an active element in the last portlet in a document. &lt;strong&gt;To solve this problem in XHTML 1.x we are incorporating a feature in Firefox and IE to define the tabindex for -1&lt;/strong&gt;. This allows a script author to give an element focus without placing it in the tab order.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/aria-roadmap/"&gt;Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite lang="en"&gt;An important addition in the States and Properties Module for Accessible Rich Internet Applications is &lt;strong&gt;new extensions of tabindex&lt;/strong&gt;. Now, with the tabindex change, the author is allowed to give any element keyboard focus (and not just form elements or anchors). In this paradigm shift, the user experience should be to use tabbing or keyboard mnemonics to move focus to widgets on the Web page and then use the arrow keys to navigate the object.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; Roles)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;XHTML 2 &lt;/strong&gt; permitirá ya que todos los elementos de la página reciban el foco, y por tanto ya no será necesario lo que en este apartado se ha dicho.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="esp"&gt;&lt;a name="roles" id="roles"&gt;&lt;/a&gt;Roles&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Lo segundo que necesita la &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt; es &lt;strong&gt;obtener información sobre la semántica de partes específicas del documento&lt;/strong&gt;, de aquellas que van a cambiar dinámicamente, o que contienen elementos que lo van a hacer. El &lt;em&gt;div&lt;/em&gt; que contiene la noticia no es una etiqueta con significado semántico, y tampoco existe una etiqueta "menú", "pestaña" o "árbol", así que en la etiqueta &lt;em&gt;div&lt;/em&gt; añadiremos el rol, la función.&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite lang="en"&gt;The incorporation of Roles for Accessible Rich Internet Applications is a way for an author to provide proper type semantics on custom widgets (elements with repurposed semantics) to make these widgets accessible, usable and interoperable with assistive technologies.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; Roles)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Por ejemplo, para definir un menú de tipo árbol, utilizaríamos el rol "tree" y "treeitem":&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div role="wairole:tree" tabindex="-1"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div role="wairole:treeitem" tabindex="-1"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[...]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.w3.org/TR/aria-role/#a_index_role"&gt;En este enlace puedes ver un listado de todos los roles&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="esp"&gt;&lt;a name="states" id="states"&gt;&lt;/a&gt;Estados y propiedades&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Lo tercero que necesita saber la &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt; es &lt;strong&gt;el estado y propiedades del objeto&lt;/strong&gt;. Siguiendo con el ejemplo del menú de tipo árbol, necesitará saber si está plegado o no. Lo indicaríamos de la siguiente manera:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div role="wairole:treeitem" tabindex="-1" aaa:expanded="true"&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;"aaa" significa: accessible adaptable applications&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-state-20070601/#supported"&gt;En este enlace puedes ver un listado de estados y propiedades&lt;/a&gt;. &lt;br /&gt;&lt;p&gt;Sin embargo, &lt;strong&gt;no basta con indicar su estado, sino que además, si este cambia, deberá modificarse&lt;/strong&gt; para que la &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt; registre el cambio y pueda informar de ello al usuario. Es decir, cada vez que el árbol se pliegue o despliegue deberá cambiar su estado. Este cambio se realiza por javascript de la siguiente manera.&lt;/p&gt;&lt;br /&gt;&lt;blockquote style="text-align:left"&gt;&lt;cite lang="es"&gt;JavaScript can then manipulate the widget via the DOM. However, because States and Properties are mapped to the accessibility platforms, the assistive technology and user agents can understand the widget behavior and respond appropriately. &lt;/cite&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;java script snippet :&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((event.type == "keyup" &amp;&amp; event.button == 0){&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Toggle checkbox&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var checkbox = event.target;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (checkbox.getAttributeNS("http://www.w3.org/2005/07/aaa", "checked") == "true") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;checkbox.removeAttributeNS("http://www.w3.org/2005/07/aaa", "checked");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;  // Don't continue propagating event&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;  // Browser can still use event&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;[Ejemplo tomado de: &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-state-20070601/"&gt;States and Properties Module for Accessible Rich Internet Applications&lt;/a&gt; (WAI-ARIA States and Properties) ]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Así como los estados y propiedades deben modificarse, los roles NO.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite&gt;Roles are element types and should not change with time or user actions. […] If the old element type is be replaced by a new one, the corresponding element and its subtree should be removed from the document and a new one inserted containing the new role type.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; Roles)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="esp"&gt;&lt;a name="resumen" id="resumen"&gt;&lt;/a&gt;En resumen:&lt;/h3&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite lang="en"&gt;&lt;p&gt;An application becomes accessible when:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Each element or widget has full and correct semantics that fully describes it's behavior (using element names or roles).&lt;/li&gt;&lt;li&gt;The relationships between elements and groups are known&lt;/li&gt;&lt;li&gt;States, properties, and relationships are valid for each elements behavior and are accessible via the Document Object Model [DOM].&lt;/li&gt;&lt;li&gt;There is an element having the correct input focus.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;&lt;p&gt;Estos son los pasos que WAI-ARIA indica que hay que seguir:&lt;/p&gt;&lt;br /&gt;&lt;cite lang="en"&gt;&lt;ul&gt;&lt;li&gt;Step 1: Use your native mark up as well as you can&lt;/li&gt;&lt;li&gt;Step 2: Find the right roles&lt;/li&gt;&lt;li&gt;Step 3: Look for groups&lt;/li&gt;&lt;li&gt;Step 4: Build relationships&lt;/li&gt;&lt;li&gt;Step 5: Set properties&lt;/li&gt;&lt;li&gt;Step 6: Associate style sheet selectors with accessibility states and properties&lt;/li&gt;&lt;/ul&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (&lt;abbr lang="en" title="Accessible Rich Internet Applications"&gt;WAI-ARIA&lt;/abbr&gt; Roles)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="aplicacion" id="aplicacion"&gt;&lt;/a&gt;¿Puedo aplicar WAI-ARIA a cualquier página HTML o XHTML?&lt;/h2&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;cite lang="en"&gt;At this time, the primary effort in the W3C WAI Protocols and Formats working group is &lt;strong&gt;to focus on an extension to XHTML 1.1.&lt;/strong&gt; It should be noted that &lt;strong&gt;XHTML 1.0 could also be enhance to support this extension&lt;/strong&gt; through the use of a hybrid DTD which incorporates the extensions. &lt;strong&gt;The reason for focusing on XHTML 1.X&lt;/strong&gt; is that XHTML is extensible through the use of namespaces and because it is renderable by today's browses.&lt;br /&gt;[…]&lt;br /&gt;This roadmap is designed to address the accessibility of dynamic, scripted, Web content that may be rendered in today's browser while bridging &lt;strong&gt;to future declarative standards, such as XHTML2&lt;/strong&gt;, in the W3C. The extensions being created for XHTML 1.X are intended to be cross-cutting.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a target="_blank" href="http://www.w3.org/TR/aria-roadmap/"&gt;Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap)&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Como se ve, en espera del estándar XHTML 2, WAI-ARIA se enfoca a XHTML 1.X. &lt;strong&gt;Si te interesa su aplicación a HTML&lt;/strong&gt;:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite&gt;There is no normative way to apply roles in HTML, but it is recommended to use the &lt;a target="_blank" href="http://www.w3.org/WAI/PF/adaptable/HTML4/embedding-20061212.html"&gt;HTML implementation technique&lt;/a&gt;.&lt;br /&gt;[...]&lt;br /&gt;HTML documents do not support namespaces, so the required accessibility role and state metadata can not be included directly in these documents. In HTML 4, you can define the accessible role and accessible states as keywords in the class attribute, then use an ECMAScript library to parse the class keywords and copy them into the appropriate role and state namespaces.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;[En &lt;a href="http://www.w3.org/WAI/PF/adaptable/HTML4/embedding-20061212.html" target="_blank"&gt;Embedding Accessibility Role and State Metadata in HTML Documents&lt;/a&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;El uso de "namespaces" para incorporar información de roles e información de estados y propiedades en XHTML 1.1 sería así&lt;/strong&gt; (los ejemplos que incluyo son tomados literalmente de &lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (WAI-ARIA Roles)&lt;/a&gt;:&lt;/p&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&amp;lt;?xml version="1.1" encoding="us-ascii"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "Accessible Adaptive Applications//EN" &lt;br /&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"&lt;br /&gt;xmlns:waistate="http://www.w3.org/2005/07/aaa"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;div role="wairole:menu" waistate:haspopup="true"&gt;&lt;br /&gt;File&lt;br /&gt;&amp;lt;/div&gt;    &lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El uso de namespaces para incorporar información de roles e información de estados y propiedades en &lt;strong&gt;XHTML 1.0&lt;/strong&gt; sería así:&lt;/p&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&amp;lt;html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;xmlns:xhtml10="http://www.w3.org/1999/xhtml"&lt;br /&gt;xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;table id="table1" xhtml10:role="wairole:grid"&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/table&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;cite lang="en"&gt;&lt;br /&gt;For developers using Firefox 1.5, the role attribute was used from the XHTML 2 namespace. Creation of an XHTML role module for XHTML 1.X only occurred recently. For those doing development on Firefox 1.5,  the role attribute from XHTML 2 must be used. This being corrected in Firefox 2.0 although Firefox 2.0 will support role in both the old XHTML 2 and 1.1 namespaces. For Firefox 1.5 supporters, this is the &lt;br /&gt;equivalent markup.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Example: Use of namespaces to incorporate role information information into XHTML 1.x for Firefox 1.5&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&amp;lt;?xml version="1.1" encoding="us-ascii"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "Accessible Adaptive Applications//EN" &lt;br /&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"&lt;br /&gt;xmlns:x2="http://www.w3.org/2002/06/xhtml2"&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;div x2:role="wairole:menu"&gt;&lt;br /&gt;File&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="soporte" id="soporte"&gt;&lt;/a&gt;¿Los navegadores y  &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt; ya soportan WAI-ARIA?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" href="http://avelino.gabiot.com/blog/index.php?entry=entry070427-184154"&gt;Avelino Herrera&lt;/a&gt; comentaba que había hecho pruebas con &lt;a target="_blank" href="http://firevox.clcworld.net/"&gt;&lt;strong&gt;FireVox&lt;/strong&gt;&lt;/a&gt; (lector de pantalla para Firefox) y que era compatible con WAI-ARIA, &lt;em&gt;siendo capaz de dictar perfectamente todo el contenido que se añadía dinámicamente a la página mediante Javascript.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Yo también lo he comprobado y es cierto. En el último apartado citaré varios ejemplos para que podáis comprobarlo vosotros mismos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://firefox.cita.uiuc.edu/index.php#beta" target="_blank"&gt;Firefox Accessibility Extension Beta version 1.1&lt;/a&gt;&lt;/strong&gt; es otra extensión de Firefox que añade una nueva barra de herramientas al navegador. Uno de sus menús se llama "Scripting" y contiene todo lo relacionado con WAI-ARIA como puedes ver en esta imagen:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-rk2CU6ec6BQ/ThDpLHv13TI/AAAAAAAABIA/cnD_eaHn84o/s1600/menu_firefox_ajax.gif" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="272" width="229" src="http://4.bp.blogspot.com/-rk2CU6ec6BQ/ThDpLHv13TI/AAAAAAAABIA/cnD_eaHn84o/s400/menu_firefox_ajax.gif" alt="Menú Scripting de Firefox Accessibility Extension" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Por ejemplo, la &lt;span lang="en"&gt;"List of DHTML Widgets"&lt;/span&gt; mostraría el siguiente aspecto&lt;/p&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vtIF35lW7Vk/ThDpbnJymBI/AAAAAAAABII/UH27Sc3-r8c/s1600/firefox-DHTML_Widgets.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="327" width="400" src="http://3.bp.blogspot.com/-vtIF35lW7Vk/ThDpbnJymBI/AAAAAAAABII/UH27Sc3-r8c/s400/firefox-DHTML_Widgets.png" alt="Menú List of DHTML Widgets de Firefox Accessibility Extension"  /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Como ves, se muestra un listado de los roles, su &lt;em&gt;tabindex&lt;/em&gt;, si ha cambiado su estado, etc.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A continuación incluyo &lt;strong&gt;la lista de implementaciones de WAI-ARIA en navegadores y tecnologías asitivas&lt;/strong&gt; que se recoge en su Hoja de ruta:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Firefox 1.5 (including MSAA support) &lt;/li&gt;&lt;li&gt;GW Micro Window-Eyes 5.5 - with Firefox support &lt;/li&gt;&lt;li&gt;JAWS 7.0 with Firefox support(partial) &lt;/li&gt;&lt;li&gt;Windows Magnifier (with IE or Firefox 1.5) &lt;/li&gt;&lt;li&gt;Internet Explorer from DOM API&lt;/li&gt;&lt;li&gt;Mozilla Firefox Test samples &lt;/li&gt;&lt;li&gt;Dojo JavaScript Toolkit&lt;/li&gt;&lt;li&gt;Mozilla Firefox Accessibility Extensions Test Tool and test suite&lt;/li&gt;&lt;li&gt;Mozilla Firefox ARIA to Accessibility API mapping&lt;/li&gt;&lt;li&gt;Bindows Object Oriented Platform for AJAX Development&lt;/li&gt;&lt;li&gt;WAI Role Taxonomy Extension Tool&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NOTA 2009&lt;/strong&gt;: &lt;a href="http://accesoalan.blogspot.com/2008/03/soporte-para-wai-aria-en-internet.html"&gt;Soporte para WAI-ARIA en Internet Explorer 8&lt;/a&gt;, &lt;cite&gt;"Internet Explorer 8 emplea información de rol, estado y propiedades a través de ARIA para communicar con las ayudas técnicas."&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NOTA 2009&lt;/strong&gt;: &lt;/p&gt;&lt;br /&gt;[09-06-09] &lt;a href="http://programaraciegas.weblog.discapnet.es/articulo.aspx?idA=1069"&gt;"Safari 4 ya está aquí"&lt;/a&gt; de Programar a ciegas&lt;br /&gt;&lt;cite&gt;Lo más importante es que &lt;strong&gt;Safari implementa HTML5 y WAI ARIA y voiceOver es compatible con las páginas que incorporen estas tecnologías&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Con Safari 4 el acceso a la nueva Web resultará posible para aquellos que utilicen ordenadores con el sistema operativo de Apple. &lt;strong&gt;La versión para Ms Windows de Safari resulta incompatible con los lectores de pantallas más conocidos, como NVDA, JAWS y Window eyes&lt;/strong&gt;.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Como se ve, el único framework de AJAX que lo implementa en Dojo... algo a tener en cuenta.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" href="http://developer.mozilla.org/en/docs/Accessible_DHTML#Supported_roles"&gt;&lt;br /&gt;Muy interesante también la lista de roles que soporta Firefox&lt;/a&gt; en combinación con distintas &lt;a href="#AT"&gt;&lt;abbr lang="en" title="Assistive Technology"&gt;AT&lt;/abbr&gt;&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="ejemplos" id="ejemplos"&gt;&lt;/a&gt;Ejemplos&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Incluyo a continuación una lista de &lt;strong&gt;ejemplos de aplicación de WAI-ARIA&lt;/strong&gt; para que podáis probar vosostros mismos instalándoos alguna extensión/aplicación del apartado anterior:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://developer.mozilla.org/en/docs/Accessible_DHTML#Sample_widgets" target="_blank"&gt;Diversos ejemplos clasificados en simples y complejos&lt;/a&gt;. &lt;br /&gt;Por ejemplo esta &lt;a href="http://www.mozilla.org/access/dhtml/spreadsheet" target="_blank"&gt;"Grid" compleja&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://test.cita.uiuc.edu/aria/states.php" target="_blank"&gt;Cantidad y variedad de ejemplos&lt;/a&gt; del iCITA (Illinois Center for Information Technology Accessibility)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Si os interesan ejemplos sobre "AJAX live regions", es recomendable el artículo del 30 de enero de 2007 &lt;a href="http://juicystudio.com/article/wai-aria-live-regions.php" target="_blank"&gt;&lt;em&gt;WAI-ARIA Live Regions&lt;/em&gt;&lt;/a&gt;  de Juicy Studio, que &lt;a href="http://accessibleajax.clcworld.net/" target="_blank"&gt;puedes verlo aplicado en los ejemplos de &lt;em&gt;Accessible AJAX&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="ejemplos" id="ejemplos"&gt;&lt;/a&gt;Enlaces de interés&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Ejemplos&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.weba11y.com/AjaxDemo/sample.html"&gt;Simple AJAX Application&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Utilidades&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/9108"&gt;extensión de accesibilidad de JuicyStudio&lt;/a&gt; soporta ARIA, por lo que será de ayuda a la hora de avaluar las webs que se vayan aplicando la especificación.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Generales&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.w3.org/WAI/intro/aria" target="_blank"&gt;Accessible Rich Internet Applications (WAI-ARIA) Suite Overview&lt;/a&gt; en WAI&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/WAI/PF/aria-practices/"&gt;WAI-ARIA Best Practices&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/aria-roadmap/" target="_blank"&gt;Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap)&lt;/a&gt;. 20 diciembre 2006&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" href="http://www.w3.org/TR/2007/WD-aria-role-20070601/"&gt;Roles for Accessible Rich Internet Applications (WAI-ARIA Roles)&lt;/a&gt;. 1 junio 2007&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/2007/WD-aria-state-20070601/" target="_blank"&gt;States and Properties Module for Accessible Rich Internet Applications (WAI-ARIA States and Properties)&lt;/a&gt;. 1 junio 2007&lt;/li&gt;&lt;li&gt;Nota de prensa del 26 de septiembre de 2006: &lt;em&gt;&lt;a target="_blank" href="http://www.w3c.es/Prensa/2006/nota060926_aria-pressrelease"&gt;El W3C publica una 'Hoja de ruta' para las aplicaciones de Internet enriquecidas accesibles (WAI-ARIA)&lt;/a&gt;&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/xhtml-role/" target="_blank"&gt;XHTML Role Attribute Module&lt;/a&gt; del W3C (13 noviembre de 2006)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/xml-events/" target="_blank"&gt;XML Events 2&lt;/a&gt; del W3C (16 febrero 2007)&lt;/li&gt;&lt;li&gt;&lt;a href="http://firefox.cita.uiuc.edu/index.php#beta" target="_blank"&gt;Firefox Accessibility Extension Beta version 1.1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Artículos&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/introduction-to-wai-aria/"&gt;"Introduction to WAI ARIA"&lt;/a&gt;, de Dev.Opera&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.areia.info/introduccion-a-wai-aria/"&gt;Introducción a WAI-ARIA (octubre 2008)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nosolousabilidad.com/articulos/wai_aria.htm"&gt;WAI-ARIA, una aproximación (febrero 2009)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.paciellogroup.com/blog/?p=107" lang="en" hreflang="en"&gt;How Can I Validate (X)HTML + ARIA?&lt;/a&gt;, de Paciello Group&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.paciellogroup.com/blog/?p=106"&gt;Using WAI ARIA Landmark Roles&lt;/a&gt;, de Paciello Group&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/waiaria" target="_blank"&gt;&lt;em&gt;Accessible Web 2.0 Applications with WAI-ARIA&lt;/em&gt;&lt;/a&gt; de Martin Kliehm (9 de abril de 2007)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.brucelawson.co.uk/2009/redesigning-with-html-5-wai-aria/" lang="en" hreflang="en"&gt;Redesigning with HTML 5 and WAI-ARIA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://accesibilidadweb.blogspot.com/2007/06/wai-aria-contenido-web-enriquecido.html" target="_blank"&gt;&lt;em&gt;WAI-ARIA: Contenido Web Enriquecido Accesible&lt;/em&gt; &lt;/a&gt; de Accesibilidad, Usabilidad y Estándares Web (4 junio 2007)&lt;/li&gt;&lt;li&gt;&lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html" target="_blank"&gt;&lt;em&gt;AJAX Accesible&lt;/em&gt;&lt;/a&gt; de Olga Carreras (febrero de 2007)&lt;/li&gt;&lt;li&gt;&lt;a href="http://accessibleajax.clcworld.net/" target="_blank"&gt;Accessible AJAX&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://juicystudio.com/article/wai-aria-live-regions.php" target="_blank"&gt;&lt;em&gt;WAI-ARIA Live Regions&lt;/em&gt;&lt;/a&gt; de Juicy Studio (30 enero 2007)&lt;/li&gt;&lt;li&gt;&lt;a href="http://avelino.gabiot.com/blog/index.php?entry=entry070427-184154"target="_blank"&gt;&lt;em&gt;WAI-ARIA: Aplicaciones web AJAX accesibles&lt;/em&gt;&lt;/a&gt; de Avelino Herrera (27 de abril de 2007) &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[26-05-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html"&gt;AJAX accesible I&lt;/a&gt;&lt;br /&gt;[22-10-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/hijax.html"&gt;AJAX accesible III: HIJAX&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-4840904833501589998?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/4840904833501589998/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html#comment-form' title='10 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/4840904833501589998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/4840904833501589998'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html' title='AJAX Accesible (II): WAI-ARIA'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-rk2CU6ec6BQ/ThDpLHv13TI/AAAAAAAABIA/cnD_eaHn84o/s72-c/menu_firefox_ajax.gif' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-6880604880498912317</id><published>2007-06-26T09:43:00.000+02:00</published><updated>2008-07-28T12:10:53.911+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='imprescindibles'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Imprescindibles... (1)</title><content type='html'>&lt;a target="_blank" href="http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding/"&gt;80+ AJAX-Solutions For Professional Coding&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smashingmagazine.com/2007/06/12/tooltips-scripts-ajax-javascript-css-dhtml/" target="_blank"&gt;40+ Tooltips Scripts With AJAX, JavaScript &amp; CSS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.webeame.net/index.php?search=tag:accesibilidad+ajax" target="_blank"&gt;Al día en AJAX mediante webéame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ajaxdaddy.com/" target="_blank"&gt;Ajax Examples in Action&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-6880604880498912317?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/6880604880498912317/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2007/06/imprescindibles.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/6880604880498912317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/6880604880498912317'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2007/06/imprescindibles.html' title='Imprescindibles... (1)'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1531275133681113837.post-2748335435801153352</id><published>2007-05-26T23:24:00.006+02:00</published><updated>2011-09-07T20:44:40.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='accesibilidad javascript'/><title type='text'>AJAX accesible</title><content type='html'>&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[07-09-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;AJAX accesible II: WAI-ARIA&lt;/a&gt;&lt;br /&gt;[22-10-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/hijax.html"&gt;AJAX accesible III: HIJAX&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;/a&gt;&lt;br /&gt;[13-04-07] &lt;a href="http://olgacarreras.blogspot.com/2007/04/accesibilidad-y-firma-electrnica.html"&gt;Accesibilidad, firma electrónica y DNIe en el ámbito de las Administraciones Públicas&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;El objetivo de este artículo es reflexionar sobre los retos de accesibilidad que supone un desarrollo con &lt;a href="http://olgacarreras.blogspot.com/2007/04/glosario-termiloga-relacionada-con-la.html#ajax" target="_blank"&gt;AJAX&lt;/a&gt;. Me voy a centrar en la accesibilidad, sin entrar en los problemas de usabilidad que plantea (seguro que a todos os suenan &lt;a href="http://swik.net/Ajax/Ajax+Mistakes" target="_blank"&gt;los diez famosos problemas&lt;/a&gt;), tema que abordaré otro día.&lt;br /&gt;&lt;br /&gt;Entiendo que si sigues leyendo es porque sabes lo que es AJAX como técnica de enriquecimiento de aplicaciones web, si no es así te recomiendo que antes de continuar le eches un vistazo a &lt;a href="http://www.uberbin.net/archivos/internet/ajax-un-nuevo-acercamiento-a-aplicaciones-web.php" target="_blank"&gt;“AJAX: un nuevo acercamiento a Aplicaciones Web“&lt;/a&gt; con la traducción del famoso artículo “Ajax: A New Approach to Web Applications” de &lt;a href="http://olgacarreras.blogspot.com/2007/04/glosario-termiloga-relacionada-con-la.html#jesee_james_garret" target="_blank"&gt;Jesse James Garret&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;AJAX no es un fin, es un medio&lt;/h2&gt;Mucha gente dará por sentado que si alguien preocupado por temas de usabilidad y accesibilidad hace un artículo sobre AJAX es para concluir: “no uséis AJAX, es el demonio, AJAX no es accesible”.&lt;br /&gt;&lt;br /&gt;Nada más lejos de mis intenciones. Me gusta AJAX, he trabajado con AJAX y recomiendo a menudo AJAX. Y aquí entran las matizaciones.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Recomiendo AJAX para problema concretos y siempre &lt;strong&gt;con sentido común&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;No recomiendo AJAX a toda costa, para todo, sólo porque los demás lo están usando o con el único afán de hacer alarde del dominio de la tecnología de moda. Usar AJAX con cualquier otro objetivo que no sea el de hacer más fácil, satisfactoria y productiva la experiencia del usuario, es simplemente una estupidez, y lo que es peor, un error que se descubre demasiado tarde.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;En definitiva: &lt;strong&gt;AJAX no es un fin, es un medio para mejorar la experiencia del usuario&lt;/strong&gt;. Parece evidente, pero un inquietante número de arquitectos y diseñadores software pierden la perspectiva.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;AJAX con sentido común&lt;/h2&gt;Creo que &lt;strong&gt;Alex Bosworth&lt;/strong&gt;, en su famoso artículo &lt;a href="http://www.sourcelabs.com/blogs/ajb/2005/12/10_places_you_must_use_ajax.html" target="_blank"&gt;“10 Places You Must Use Ajax”&lt;/a&gt; recomienda muy acertadamente para qué usar o no usar AJAX:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recomienda usar AJAX para:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Form driven interaction. &lt;/li&gt;&lt;li&gt;Deep hierarchical tree navigation.&lt;/li&gt;&lt;li&gt;Rapid user-to-user communication. &lt;/li&gt;&lt;li&gt;Voting, Yes/No boxes, Ratings submissions.&lt;/li&gt;&lt;li&gt;Filtering and involved data manipulation. &lt;/li&gt;&lt;li&gt;Commonly entered text hints/autocompletion.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;NO recomienda usar AJAX para:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple forms.&lt;/li&gt;&lt;li&gt;Search.&lt;/li&gt;&lt;li&gt;Basic navigation.&lt;/li&gt;&lt;li&gt;Replacing a large amount of text.&lt;/li&gt;&lt;li&gt;Display manipulation.&lt;/li&gt;&lt;li&gt;Useless widgets.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Dicho esto, es cierto que un desarrollo con técnicas AJAX plantea interesantes retos de accesibilidad, y para afrontarlos deberemos partir de &lt;strong&gt;dos premisas básicas&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La inmensa mayoría de los problemas tienen solución, unas veces será más fácil que otras, unas veces será más costosa que otras, pero &lt;strong&gt;siempre hay una solución&lt;/strong&gt;. Al fin y al cabo en eso consiste nuestro trabajo ¿no? en encontrar soluciones a los problemas.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Nada es de por si accesible o no accesible&lt;/strong&gt;, ni una página, ni un script; los que los hacen inaccesibles son siempre los desarrolladores, por falta de conocimientos o por falta de interés.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;AJAX y navegadores&lt;/h2&gt;AJAX se basa en el uso del objeto &lt;strong&gt;XMLHTTPRequest&lt;/strong&gt; mediante Javascript ejecutado en el navegador para realizar &lt;strong&gt;peticiones asíncronas al servidor&lt;/strong&gt;, y en la manipulación, también por Javascript, del &lt;strong&gt;Document Object Model (DOM)&lt;/strong&gt; para visualizar e interactuar dinámicamente con la información presentada.&lt;br /&gt;&lt;br /&gt;Por tanto, aunque AJAX no necesita ningún tipo de plugin para el navegador, requiere que el navegador soporte y tenga activo el Javascript, y que además soporte el objeto XMLHTTPRequest. En Internet Explorer 5 y 6, además, es necesario tener la secuencia de comandos ActiveX activada, ya que, en estas versiones, la implementación de Microsoft (denominada XMLHTTP) es un componente ActiveX (mientras que en versiones más recientes de los navegadores está implementado como un objeto nativo).&lt;br /&gt;&lt;br /&gt;En resumen, &lt;strong&gt;los navegadores que soportan AJAX&lt;/strong&gt;, siempre y cuando tengan Javascript activado, y en su caso la secuencia de comandos ActiveX, son:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Microsoft Internet Explorer&lt;/strong&gt; para Windows versión 5.0 y superiores, y los navegadores basados en él (por ejemplo &lt;a href="http://www.maxthon.com/es/" target="_blank"&gt;Maxthon&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Navegadores basados en &lt;strong&gt;Gecko &lt;/strong&gt;como Mozilla, Mozilla Firefox, SeaMonkey, Camino, Flock, Epiphany, Galeon y Netscape versión 7.1 y superiores &lt;/li&gt;&lt;li&gt;Navegadores con el &lt;strong&gt;API KHTML versión 3.2 y superiores&lt;/strong&gt; implementado, incluyendo Konqueror versión 3.2 y superiores, Apple Safari versión 1.2 y superiores. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Opera versión 8.0 y superiores&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dispositivos móviles&lt;/strong&gt;: Opera Mobile Browser 8.0 basado en Safari y API KHTML, que soporta aplicaciones desarrolladas en AJAX gracias a su motor de Javascript y su seguimiento del DOM. El mes pasado Mozilla lanzaba &lt;a href="http://www.mozilla.org/projects/minimo/" target="_blank"&gt;Minimo Mobile Browser 0.2&lt;/a&gt; compatible con Windows Mobile 5.0, y que soporta Javascript y AJAX.&lt;br /&gt;&lt;br /&gt;[Si os interesa el uso de AJAX en entornos móviles, es interesante echar un vistazo a &lt;a href="http://mojax.mfoundry.com/display/mojax/Main+Page" target="_blank"&gt;MOJAX (Mobile AJAX Application Frameworks)&lt;/a&gt;]&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Los navegadores que NO soportan AJAX son:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Opera 7 y anteriores &lt;/li&gt;&lt;li&gt;Microsoft Internet Explorer para Windows versión 4.0 y anteriores &lt;/li&gt;&lt;li&gt;IE para Macintosh, todas las versiones &lt;/li&gt;&lt;li&gt;Dillo &lt;/li&gt;&lt;li&gt;Navegadores basados en texto como Lynx y Links &lt;/li&gt;&lt;li&gt;Navegadores para incapacitados visuales (braille) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dispositivos móviles&lt;/strong&gt;: &lt;a href="http://labs.live.com/Deepfish/" target="_blank"&gt;Deepfish&lt;/a&gt; de Microsoft, presentado también hace un par de meses no soporta controles ActiveX, AJAX, cookies, ni JavaScript. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;AJAX accesible&lt;/h2&gt;El punto de verificación 6.3 de las &lt;a href="http://olgacarreras.blogspot.com/2007/04/glosario-termiloga-relacionada-con-la.html#WCAG" target="_blank"&gt;Pautas de Accesibilidad de la WAI&lt;/a&gt; dice así:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite&gt;Asegúrese de que las páginas sigan siendo utilizables cuando se desconecten o no se soporten los scripts, applets u otros objetos programados. Si esto no es posible, proporcione información equivalente en una página alternativa accesible.&lt;br /&gt;&lt;/cite&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Dicho punto es de Prioridad 1, es decir, es necesario para alcanzar un nivel de adecuación Simple A. Por tanto, para asegurar la accesibilidad de nuestra aplicación, se debe ofrecer una alternativa para el contenido mostrado dinámicamente por Javascript.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Si se utiliza un framework&lt;/strong&gt; para implementar técnicas AJAX, bien sea open source, comercial o propio de nuestra organización, habrá que asegurarse de que éste ofrece una alternativa accesible adecuada para cada componente AJAX y de que tienen en cuenta las incompatibilidades entre navegadores. &lt;a href="#notaAJAX1"&gt;[1]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y por supuesto, todos aquellos contenidos que se inserten dinámicamente en la página deben cumplir las normas de accesibilidad de ese elemento, tal y como las cumplen los demás elementos de la página. Y por tanto, si se utiliza un framework, asegurarse de que cumpla este requisito. &lt;a href="#notaAJAX2"&gt;[2]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y después de todo lo dicho, llegamos a lo realmente importante, al "meollo" del asunto.&lt;br /&gt;&lt;br /&gt;Cuando indico que es necesario ofrecer una alternativa accesible &lt;strong&gt;NO me refiero a crear dos aplicaciones diferentes, una con AJAX y otra sin AJAX&lt;/strong&gt;. La &lt;a href="http://olgacarreras.blogspot.com/2007/04/glosario-termiloga-relacionada-con-la.html#WAI" target="_blank"&gt;WAI&lt;/a&gt; desaconseja explícitamente los sitios alternativos por no ser una solución integradora, eso sin contar con el elevado coste de realizar dos versiones, las dificultades y el coste de su mantenimiento (como leí en el blog de &lt;a href="http://www.torresburriel.com/weblog/" target="_blank"&gt;Torres Burriel&lt;/a&gt;, Jesús García lo definió muy acertadamente como “casa de dos puertas es difícil de guardar” ).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;El objetivo, por lo tanto, es conseguir hacer accesible una única aplicación.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;¿Cómo podemos pues ofrecer alternativas accesibles para los desarrollos AJAX sin crear dos aplicaciones diferentes?&lt;/h2&gt;Antes de entrar en el tema me gustaría hacer un inciso sobre &lt;strong&gt;la etiqueta "noscript"&lt;/strong&gt;, de la que a menudo se echa mano. Por ejemplo, imaginemos un menú dinámico implementado por AJAX, de tal manera que al pulsar en una de las opciones principales del menú, se consulta al servidor su árbol de submenús para pintarse en la página.&lt;br /&gt;&lt;br /&gt;Puede pensarse que una buena alternativa accesible sería en la etiqueta "noscript" incluir todo el árbol del menú (o si este es muy extenso, un enlace a un página con todas las opciones de menú). Pero hay que advertir que &lt;a href="http://sigt.net/archivo/xhtml-20-el-futuro-de-la-web-y-que-no-nos-pase-na.xhtml" target="_blank"&gt;la etiqueta "noscript" no estará en el estándar XHTML2.0 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De todas formas, como voy a explicar ahora, hay una manera más robusta de hacer las cosas.&lt;br /&gt;&lt;br /&gt;Para empezar, tu aplicación debe utilizar un &lt;strong&gt;patrón MVC (Modelo-Vista-Controlador) &lt;/strong&gt;que separe los datos de la aplicación, la interfaz de usuario y la lógica de negocio en tres componentes distintos… y si no… vamos “apañaos”.&lt;br /&gt;&lt;br /&gt;Por otra parte, es graciosa tanta preocupación por separar el contenido, la presentación y el comportamiento, para luego encontramos las páginas llenas de Javascript. No me refiero a que el código no esté en ficheros JS (faltaría más), sino a tener el código Javascript mezclado con el código HTML, empozoñándolo al estilo de &lt;code&gt;&amp;lt;input onClick=”mifuncion()”&gt;&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Todo &lt;strong&gt;el código javascript debe ser no intrusivo&lt;/strong&gt;, invisible, de tal manera que no afecte su desactivación al funcionamiento de la página, y por supuesto tener cuidado con el tipo de eventos que se manejan (el evento &lt;em&gt;onClick&lt;/em&gt; será inservible, por ejemplo, a un usuario que no disponga de ratón).&lt;br /&gt;&lt;br /&gt;[Si lo de javascript “no intrusivo” te suena a chino, ya te estás yendo a &lt;a href="http://www.onlinetools.org/articles/unobtrusivejavascript/" target="_blank"&gt;Unobtrusive Javascript&lt;/a&gt; y a &lt;a href="http://www.bennolan.com/behaviour/" target="_blank"&gt;Behaviour&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Bien, tenemos pues una aplicación como dios manda en la que además,&lt;strong&gt; desde la primera petición al servidor de nuestras páginas&lt;/strong&gt;, éste identifica el &lt;a href="http://en.wikipedia.org/wiki/User_agent" target="_blank"&gt;&lt;strong&gt;User-Agent&lt;/strong&gt;&lt;/a&gt; en una cabecera del protocolo http, pudiendo guardar esta información en una variable. Dicha variable será recuperable en toda la aplicación y servirá a los componentes AJAX de nuestro framework para que decidan cómo deben presentarse (en combinación con la identificación en su código generado de si está activado el Javascript en el navegador).&lt;br /&gt;&lt;br /&gt;Cuando hablo de componentes AJAX, en realidad pienso siempre en un framework personal o corporativo de mi organización o de mi cliente. &lt;strong&gt;Desconfío de los grandes frameworks de AJAX por varias razones&lt;/strong&gt;: tienen bugs al estar todavía poco maduros y no siempre hacen todo lo que el cliente/usuario/guía de estilo te exige que hagan. Prefiero un framework personal, al que le puedes echar mano con facilidad, sólo con los componentes que necesitas, a la medida de tus necesidades, y por supuesto basado en &lt;a href="http://www.prototypejs.org/" target="_blank"&gt;prototype&lt;/a&gt;. &lt;a href="#notaAJAX3"&gt;[3]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En este contexto, un componente AJAX sería, por ejemplo, una tabla con ordenamiento de columnas y paginación mediante AJAX, o un menú dinámico que consulte por AJAX las subopciones que ha de desplegar antes de repintarse.&lt;br /&gt;&lt;br /&gt;Nuestro componente “tabla” define internamente dos comportamientos en función del User-Agent: cómo pintarse para el caso de que sí admita javascript y en el de que no lo admita.&lt;br /&gt;&lt;br /&gt;Por otro lado, hay que decir que la &lt;strong&gt;variante accesible dependerá mucho del tipo de componente&lt;/strong&gt;; por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si se trata de un autocompletar en una caja de texto, puede decidirse que no es necesario disponer de una alternativa accesible, puesto que no tenerla no merma en nada la interacción con el formulario.&lt;/li&gt;&lt;li&gt;En el caso de una validación campo a campo de un formulario asíncronamente mediante AJAX, siempre que el formulario tenga un botón submit que valide los campos en servidor, no necesitará mayor alternativa.&lt;/li&gt;&lt;li&gt;En el caso de las capas de detalle (o balones) que aparecen sobre una celda de una tabla a modo de resumen (para no tener que navegar al detalle completo si no se desea), mi punto de vista es que si existe el enlace de detalle en cada fila, tampoco es necesaria otra alternativa accesible. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;Por lo tanto, si cada componente de nuestro framework tiene correctamente implementado internamente su comportamiento en función de las capacidades del navegador y del contexto de ejecución, este framework conseguirá el objetivo de cualquier diseño técnico orientado a componentes: independizar a la aplicación que los utiliza acerca de sus particularidades de implementación, lo que en este caso significa, en un caso ideal, que el desarrollador de la aplicación no deberá preocuparse acerca de las alternativas accesibles para los elementos enriquecimiento utilizados.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De esta manera, la alternativa accesible es sólo a nivel de capa de presentación y sólo a nivel de componentes, no de aplicación.&lt;/strong&gt; &lt;a href="#notaAJAX4"&gt;[4]&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Es necesario conocer...&lt;/h2&gt;Si os interesa este tema, son imprescindibles los &lt;a href="http://www.maxkiesler.com/2006/06/28/how-to-make-your-ajax-applications-accessible-40-tutorials-and-articles/" target="_blank"&gt;40 tutoriales y artículos de AJAX y accesibilidad&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;También por supuesto es imprescindible conocer &lt;a href="http://www.w3c.es/Prensa/2006/nota060926_aria-pressrelease" target="_blank"&gt;&lt;strong&gt;la hoja de ruta WAI-ARIA (Roadmap for Accessible Rich Internet Applications (WAI-ARIA))&lt;/strong&gt;&lt;/a&gt;, presentada por la W3C en septiembre de 2006.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;cite&gt;&lt;br /&gt;[...] ofrece una propuesta global que permita asegurar la interoperabilidad entre las aplicaciones de internet enriquecidas y las tecnologías asistivas utilizadas por personas con discapacidad. La propuesta se apoya en tecnologías ya desarrolladas o que están en desarrollo por el W3C, tales como el Modulo del Atributo Role de XHTML.&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.w3c.es/Prensa/2006/nota060926_aria-pressrelease" target="_blank"&gt;En W3C España&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.w3.org/TR/2006/WD-aria-roadmap-20060926/" target="_blank"&gt;WAI-ARIA Roadmap&lt;/a&gt;] [&lt;a href="http://www.w3.org/TR/2006/WD-aria-role-20060926/" target="_blank"&gt;WAI-ARIA Roles&lt;/a&gt;] [&lt;a href="http://www.w3.org/TR/2006/WD-aria-state-20060926/" target="_blank"&gt;WAI-ARIA States and Properties&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/cite&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html" target="_blank"&gt;Ver artículo AJAX accesible II: WAI-ARIA&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Por último comentar el artículo &lt;a href="http://juicystudio.com/article/making-ajax-work-with-screen-readers.php" target="_blank"&gt;"Making Ajax Work with Screen Readers"&lt;/a&gt; de Gez Lemon and Steve Faulkner, que proponen &lt;strong&gt;manejar el búfer virtual del lector de pantalla JAWS&lt;/strong&gt; como vía para hacer accesible una aplicación web.&lt;br /&gt;&lt;br /&gt;Como complemento de nuestra aplicación puede ser buena idea, pero no es un estándar, ni JAWS es el único software para usuarios con deficiencias visuales, ni por supuesto la accesibilidad está pensanda sólo para este colectivo, como a veces parece que mucha gente piensa.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;En resumen, buenas prácticas&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="entradilla"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Respetar las pautas de accesibilidad en todos los elementos de las páginas aunque estén insertados dinámicamente.&lt;/li&gt;&lt;li&gt;Utilizar un patrón MVC que facilite la separación entre las lógicas de control y flujo de navegación (Controlador), de negocio y acceso a datos (Modelo), y de presentación en los distintos clientes, dispositivos y contextos (Vista).&lt;/li&gt;&lt;li&gt;Utilizar Javascript no intrusivo.&lt;/li&gt;&lt;li&gt;Conocer los navegadores para discapacitados visuales y comprobar que pueden interactuar con la aplicación: eventos adecuados, foco accesible, etc.&lt;/li&gt;&lt;li&gt;Detectar el User-Agent del usuario desde la primera petición guardando esta información para que sea recuperable por todas las páginas de la aplicación.&lt;/li&gt;&lt;li&gt;Crear una serie de módulos, de componentes AJAX, que en función del User-Agent y de si está habilitada la ejecución de Javascript sepan como “pintarse”, dando por tanto una opción alternativa accesible dependiendo del componente en cuestión.&lt;/li&gt;&lt;li&gt;Acatar la hoja de ruta de la WAI que permitirá por ejemplo informar mediante roles al usuario del funcionamiento exacto de la aplicación cuando los navegadores las implementen. &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Notas&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&lt;a name="notaAJAX1"&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/a&gt; Por ejemplo, &lt;a href="http://www.tabernadelturco.com/2006/05/08/rails-el-demonio-del-client-side/" target="_blank"&gt;Rails incluye alternativas accesibles para formularios &lt;/a&gt;que se envían por Javascript, incluyendo un argumento que indica a qué URL enviarlo si no está habilitado el Javascript.&lt;br /&gt;&lt;br /&gt;&lt;a name="notaAJAX2"&gt;&lt;strong&gt;[2]&lt;/strong&gt;&lt;/a&gt; Por ejemplo,&lt;a href="http://www.ingeniuz.com/2006/10/25/dojo-04-ya-est-aqu/" target="_blank"&gt; Dojo 0.4 empieza a ofrecer &lt;/a&gt;funcionalidad completa desde teclado e integración con modos de alto contraste así como con lectores de pantalla para las personas discapacitadas. dojo.a11y: la fundación para la accesibilidad (a11y), ha implementado algunos de los widgets de esta versión e implementará algunos más para la siguiente (0.5).&lt;br /&gt;&lt;br /&gt;&lt;a name="notaAJAX3"&gt;&lt;strong&gt;[3]&lt;/strong&gt;&lt;/a&gt; Esta afirmación la considero válida en la actualidad, pero la evolución tecnológica que puede haber en un plazo de 2-3 años en los frameworks y productos disponibles, su integración con los IDEs, etc, seguramente desaconsejará a corto plazo el uso de frameworks propios, cuya principal debilidad es el coste y dificultad del futuro mantenimiento evolutivo/correctivo/adaptativo/perfectivo).&lt;br /&gt;&lt;br /&gt;&lt;a name="notaAJAX4"&gt;&lt;strong&gt;[4]&lt;/strong&gt;&lt;/a&gt; A nivel de lógica de negocio, no sería óptimo trabajar sólo con macropeticiones (peticiones globales de la página como en una aplicación sin AJAX) ni siquiera componer las macropeticiones a través de las micropeticiones (pequeñas peticiones sólo de aquellos contenidos de la página que vamos actualizar con AJAX), por ello, sí que será necesario que junto a las micropeticiones haya macropeticiones para las variantes accesibles.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="rel"&gt;&lt;strong&gt;Artículos relacionados&lt;/strong&gt;&lt;br /&gt;[07-09-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/ajax-accesible-ii-wai-aria.html"&gt;AJAX accesible II: WAI-ARIA&lt;/a&gt;&lt;br /&gt;[22-10-07] &lt;a href="http://olgacarreras.blogspot.com/2007/02/hijax.html"&gt;AJAX accesible III: HIJAX&lt;/a&gt;&lt;br /&gt;[27-03-09] &lt;a href="http://olgacarreras.blogspot.com/2009/03/ajax-accesible-iv-tecnicas-aria-de-las.html"&gt;AJAX accesible IV: Técnicas ARIA de las WCAG 2.0&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1531275133681113837-2748335435801153352?l=olgacarreras.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olgacarreras.blogspot.com/feeds/2748335435801153352/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html#comment-form' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/2748335435801153352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1531275133681113837/posts/default/2748335435801153352'/><link rel='alternate' type='text/html' href='http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html' title='AJAX accesible'/><author><name>Olga Carreras</name><uri>http://www.blogger.com/profile/09766441534259003449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-ExT25d6I8sM/ThApmvcNINI/AAAAAAAAA_Y/_ZW_tOAgmso/s220/olgacarreras.jpg'/></author><thr:total>6</thr:total></entry></feed>
