Esta traducción se concluyó, el 29 de agosto de 2002.
Los posibles errores presentes en este documento, debidos a la traducción, son responsabilidad de la traductora y no son achacables en modo alguno al W3C. Para cualquier comentario sobre la traducción dirigirse a Emmanuelle Gutiérrez y Restrepo
La única versión normativa oficial de este documento es la versión original (en inglés):
http://www.w3.org/TR/2001/WD-xmlgl-20010829
¡Atención!: Este documento es un "Borrador de Trabajo" por tanto está sujeto a cambios. Su intención es recibir observaciones por parte de los miembros del W3C y de otras partes interesadas. Si usted no puede enviar observaciones en inglés a la dirección que se cita más abajo, envíelas a la traductora quien las hará llegar, en su nombre, a los editores. Pero antes de hacer cualquier comentario, revisen por favor la versión del Editor:
Último Borrador Editorial:
http://www.w3.org/WAI/PF/XML/
Copyright ©2000, 2001 W3C® (MIT, INRIA, Keio), Todos los derechos reservados. W3C responsabilidades, marca registrada, uso del documento y normas aplicables a la licencia de software.
Este documento explica cómo diseñar aplicaciones accesibles usando XML, el Lenguaje de Marcado Extensible. Comparado con los lenguajes HTML o MathML, XML está un nivel arriba: es una meta sintaxis usada para describir estos lenguajes, así como otros lenguajes nuevos. Como meta sintaxis, XML proporciona una garantía no instrínseca de independencia del tipo de dispositivo o de ayudas alternativas textuales. Es esencial, sin embargo, que los diseñadores de formatos y herramientas XML cuenten con directrices que expliquen cómo incluir funciones de accesibiliad básicas - tales como las que hay en HTML, SMIL, y SVG - en todos sus nuevos desarrollos.
Este documento es un Borrador de Trabajo disponible gracias al Grupo de Trabajo sobre Protocolos y Formatos del WAI (PFWG), para que sea revisado por los miembros del W3C y otras partes interesadas. El grupo PF funciona como parte de la Actividad Técnica del WAI.
Dependiendo de las reacciones recibidas, este documento puede llegar a convertirse en una Nota del W3C, integrándose en la serie de Directrices de Accesibilidad para el Contenido Web, por ejemplo como técnicas para XML, o seguir su propio proceso hasta llegar a ser una Recomendación.
Por favor, envíe los comentarios sobre el contenido de este documento y sobre cómo le gustaría que evolucionara, a los archivos públicos de las listas de correo electrónico: wai-tech-comments@w3.org. Se recibirán los comentarios hasta el 30 de septiembre de 2001. Puede enviar comentarios menores sobre la edición directamente a los editores.
La publicación de este documento no implica el respaldo del W3C, sus miembros o su dirección. Este es un borrador y puede,en cualquier momento, ser actualizado, reemplazado o quedar obsoleto por otros documentos. No es apropiado utilizar los borradores de trabajo del W3C como material de referencia o citarlos de manera que no sea como "trabajo en progreso". Puede encontrarse una lista de informes técnicos y publicaciones del W3C actuales, incluyendo borradores de trabajo y notas, en http://www.w3.org/TR/.
XML (Extensible Markup Language) es una meta-sintaxis, utilizada para crear nuevos lenguajes.
Ello puede verse como una simplificación de SGML (Standard Generalized Markup Language), diseñado para promover una amplia aceptación en los mercados Web, pero sirviendo a la misma funcionalidad de extensibilidad y de diseño de nuevos lenguajes.
HTML (HyperText Markup Language), de otro lado, es una aplicación particular de SGML, que cubre una serie de necesidades (documentos hypertexto "simples") y una serie de elementos y atributos.
Por ejemplo, en HTML, los autores pueden escribir elementos como:
<title>XML and Accessibility</title> <address lang=fr>Daniel Dardailler</address> <h1>Background</h1>
y sólo pueden usar elementos (title, h1, etc.) definidos por la especificación HTML (que define cerca de cien) y sus atributos.
En SGML y XML, los autores pueden definir su propia serie de elementos, para acabar teniendo documentos como:
<menu>New England Restaurant</menu> <appetizer>Clam Chowder <photo url="clam.jpg">A large creamy bowl of clam showder, with bread crumbs on top</photo> </appetizer>
lo que puede satisfacer mejor las necesidades de su sistema de información.
Dentro del W3C, el lenguaje HTML está siendo ahora refundido como XML - esto es lo que se llama XHTML - incluyendo una modularización de HTML para satisfacer las necesidades de una amplia comunidad (usuarios de móviles, Web TV, etc.).
Por tanto, no debe verse al XML como un reemplazo de HTML, sino como un nuevo piso del edificio sobre el que se pondrá al HTML, junto a otros lenguajes diseñados por el W3C, tales como MathML (para representar fórmulas matemáticas), SMIL (para sincronizar multimedia), SVG (para gráficos escalables), etc.; y otros nuevos lenguajes diseñados por otras organizaciones (tales como OpenEBook, XML-EDI, etc.).
Además, es importante comprender que XML es no sólo una tecnología de Interfaz de Usuario (como HTML), sino que puede y a menudo se usa en protocolos de comunicación, para serializar y codificar datos para ser enviados desde una máquina a otra.
Las gramáticas XML (se llaman schemata - pero vea la advertencia sobre el uso que damos al término "esquema" en la sección de definiciones) pueden clasificarse en dos ejes diferentes:
Según esta taxonomía, estas directrices se dirigen sólo a schemata orientada a datos. Lo cual no implica que no haya problemas o características de accesibilidad en la schemata Orientada a Metadatos - vea, por ejemplo, cómo XSLT, un componente de XSL, puede ayudar a crear un formato para Braille - puesto que ellas no incluyen datos orientados al usuario final, sin embargo, la schemata orientada a Metadatos queda fuera del alcance de estas directrices.
El WAI (Web Accessibility Initiative) ha hecho una gran cantidad de trabajo en el área de HTML, produciendo muchas nuevas funcionalidades que se añden a la versión 4.0 del lenguaje (vea el HTML4 Accessibility Improvements paper).
Estas funcionalidades incluyen:
Un tema que preocupa con la llegada de XML es la libertad de diseño que tiene y que puede resultar en una pérdida de características de accesibilidad, presentes hoy debido a la amplia disponibilidad y penetración de la especificación de HTML.
Por ejemplo, uno podría diseñar un nuevo lenguaje XML que prevendría la creación de documentos accesibles, mediante la no inclusión en el elemento o atributo de una manera establecida para adjuntar una descripción alternativa textual para una fotografía:
<menu>New England Restaurant</menu> <appetizer>Clam Chowder <photo url="clam.jpg"/> <!-- aquí no existe el atributo alt ni un modelo de contenido textual --> </appetizer>
En este ejemplo, el problema no es que el autor de este documento no haya puesto un atributo alt o añdido al elemento fotográfico un equivalente textual, el problema es que el diseñador del lenguaje no ha puesto el atributo o el soporte apropiado en el lenguaje en sí mismo (esto es, en el esquema o la DTD).
Pero comencemos por definir qué queremos decir por un esquema y documento accesible (al final de este documento se detallan estas definiciones):
Un esquema XML es accesible si posibilita, y de hecho promueve activamente, la creación de documentos accesibles.
Un documento es accesible si puede ser igualemente entendido por su público objeto independientemente del dispositivo que use para acceder a él.
Un documento accesible también se define como aquel que conforma las Directrices de Accesibilidad para el Contenido Web.
Tal como se explica en la introducción, aquí sólo vamos a considerar lenguajes orientados a datos, y para ellos el mensaje es simple: sea independiente del tipo de dispositivo y exporte sus semánticas tanto como pueda.
Aunque la prioridad es fundamental en el primer aspecto (multi-modalidad), ambos aspectos son importantes, tanto como que sin el conocimiento del significado de los elementos y atributos XML, queda una pequeñísima posibilidad de que las aplicaciones alternativas del usuario puedan hacer algo inteligente con apenas trozos del documento.
Por supuesto que estos conocimientos semánticos pueden proporcionarse mediante documentación leíble por el humano, pero teniendo aserciones de semánticas leíbles por la máquina, que pueden entonces usarse para presentar el documento por varios medios, es lo máximo para el acceso extensivo (esto es, usted no necesita un programador, sólo necesita un programa). Permitiendo a otros mapear desde su lenguaje a otros existentes o viceversa, es una útil característica de accesibilidad.
ICADD (International Committee on Accessible Document Design) fue pionero en el tema de la accesibilidad para SGML y en maneras de transmitir semánticas de esquema arbitrarias (usando mecanismos obligatorios específicos de SGML). Unos pocos años después, ICADD no ha sido adoptado realmente (de hecho, la DTD de ICADD fue reemplazada por HTML y sus bien conocidas semánticas), y la gente sigue intentando resolver el mismo problema, aunque con más experiencia en el campo de la accesibilidad de HTML y esta vez aplicándola a XML.
Esta sección proporciona una lista de cuatro directrices, que son principios generales del diseño accesible. Las directrices incluyen su razonamiento y puntos de control. Cada punto de control expresa un requerimiento, incluye algún texto informativo sobre el punto de control y una o más Técnicas, en las que se discuten la aplicación y ejemplos de los puntos de control. Advierta que los puntos de control no han sido clasificados por prioridad, todavía.
Los proveedores de contenidos Web deben ser capaces de ofrecer versiones alternativas de sus contenidos si desean hacerlo (Tal como las Directrices de Accesibilidad para el Contenido Web les dicen que deben hacer). Las alternativas en formato texto, por ejemplo, pueden ser reformateadas para muchos dispositivos de salida, mientras que el contenido que no es texto a menudo queda confinado a una cierta serie de dispositivos. Así, permitiendo y alentando la inclusión de alternativas en formato texto sincronizadas, usted permite que sus tagset sean más inter-operables y por tanto accesibles.
<table border="1" summary="Esta tabla recoge algunas estadísticas sobre la mosca de la fruta: promedio en altura y peso, y porcentaje con ojos rojos (tanto en machos como en hembras)."> <caption><em>Estadísticas</em> sobre moscas de la fruta</caption> <tr><th rowspan="2"><th colspan="2">promedio <th rowspan="2">ojos<br>rojos <tr><th>altura<th>peso <tr><th>machos<td>1.9<td>0.003<td>40% <tr><th>hembras<td>1.7<td>0.002<td>43% </table>
Por flexible queremos decir que, no esté constreñido por el lenguaje en sí mismo. Por ejemplo, HTML le permite agregar "alt" a las imágenes, pero no le permite a usted agregar imágenes a una serie de texto/marcado, de manera que la gente tiene que ponerlas con el mecanismo menos adecuado, quizás añadiendo "ver figura 1" al final de un párrafo. Si el contenido de <img> no estuviera vacío, esto resolvería el problema hasta cierto punto. Otra manera podría ser añadir un atributo "appliesto" para el elemento <img> permitiéndole a usted poner la imagen asociada en cualquier lugar en el documento. Satisfacer este punto de control exige pensar mucho debido a su naturaleza subjetiva, pero es muy importante. Por ejemplo, si <img> fuera no-vacío, o si tuviera un atributo appliesto
, es probable que mucha más gente asociaría imágenes con series de texto/marcado.
<svg xmlns="http://www.w3.org/2000/svg" xml:lang="en"> <g> <desc xmlns:mydoc="http://example.org/mydoc"> <mydoc:title id="title1">The sales bar chart by region</mydoc:title> <mydoc:para>This description uses markup from the <mydoc:emph>mydoc</mydoc:emph> namespace.</mydoc:para> </desc> <!-- ahora la imagen que incluye el texto que hace referencia a la descripción --> <rect x="10" y="20" ...> <text x="100" y="200" font-size="15" fill="red" > <tref xlink:href="#title1"/> </text> </g> </svg>
<!DOCTYPE document SYSTEM "myDTD.dtd" [ <!ENTITY % qnames PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN" "xhtml-qname-1.mod" > <!ENTITY % object PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" "xhtml-object-1.mod" > %qnames; %object; ]> <i:inventory xmlns:i="http://www.my.org/xmlns/inventory"> <i:stockitem> etc. <xhtml:object...> to include a picture or movie of the part.
El XML orientado a datos debe contener métodos precisos de codificar los datos para su alcance particular. Incrementando la semántica de su tagset y estableciendo dispositivos enlazados a presentaciones externas o semánticas ulteriores, usted permite que sus datos sean "Webized" y a partir de ahí funcionen en muchos entornos.
En general, los lenguajes deben diseñarse de manera que puedan ser presentados de manera independiente del tipo de dispositivo. Los lenguajes utilizados sólo para la presentación a un cierto grupo de usuarios (esto es, tagsets de forma final) deben tener en cuenta las siguientes advertencias:
Vea el último párrafo de la XSL 1.1.1 section para ver un ejemplo de tales términos.
No incluya elementos y atributos de presentación en su lenguaje.
<p align="center" font="arial" weight="bold">News items 1</p> <p align="center" font="arial" weight="bold">News items 2</p> <p align="center" font="arial" weight="bold">News items 3</p>
Ejemplo: Correcto
Apoye la inclusión y procesado de hojas de estilo externas.
mystyle.css: .news { text-align: center; font: bold arial }
<?xml-stylesheet href="mystyle.css" type="text/css"?> <p class="news">News items 1</p> <p class="news">News items 2</p> <p class="news">News items 3</p>
Las aplicaciones de usuario no tienen manera de saber que esto es un enlace.
<mylink linkend="http://mysite/myfile.xml"> Current list of references </mylink>
Ejemplo: Correcto
Los enlaces pueden ser reconocidos de manera segura por las aplicaciones XLink.
<crossref xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://mysite/myfile.xml"> Current list of references </crossref>
<-- menu - highest level block element appetizer - first child of section, major block element entree - second child of section, major block element entity meal-sequence - common paragraph level blocks --> <!ELEMENT menu (title , ((%meal-sequence;)| appetizer)+)> <!ELEMENT appetizer (title? , ((%meal-sequence;) | entree)+)>
<xsd:schema xmlns="http://www.publishing.org" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> <xsd:element name="document"> <xsd:complexType> <xsd:sequence> <xsd:element ref="head"/> <xsd:element ref="section"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="head" type="xsd:string"> <xsd:annotation> <xsd:documentation>Section title</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="section"> <xsd:complexType> <xsd:sequence> <xsd:element ref="head"/> <xsd:element ref="section"/> <xsd:element ref="paragraph" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="paragraph" type="xsd:string"/> </xsd:schema>
<xsd:simpleType name="ISBN-Type"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{5}-\d{5}-\d{5}"/> <xsd:pattern value="\d{1}-\d{3}-\d{5}-\d{1}"/> <xsd:pattern value="\d{1}-\d{2}-\d{6}-\d{1}"/> </xsd:restriction> </xsd:simpleType>
Ejemplo: XML utilizando RDF y Dublin Core, semánticas bien conocidas.
<someElement xmlns="http://xmlns.com/example"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description about="http://www.dlib.org/"> <dc:Title> D-Lib Program - Research in Digital Libraries </dc:Title> <dc:Description>The D-Lib program supports the community of people with research interests in digital libraries and electronic publishing.</dc:Description> <dc:Publisher> Corporation For National Research Initiatives </dc:Publisher> <dc:Date>1995-01-07</dc:Date> <dc:Type>World Wide Web Home Page</dc:Type> <dc:Format>text/html</dc:Format> <dc:Language>en</dc:Language> </rdf:Description> </rdf:RDF> <!-- .....other xml.... --> </someElement>
<report> <invoice> <amount>25 dollars</amount> .... </invoice> <description> <item>Widgets</item> <amount>25</amount> </description> </report>
En el ejemplo de arriba, el diseñador del esquema ha utilizado la primera ocurrencia del elemento "amount" (cantidad en inglés) para significar el 'precio' de los productos comprados y la segunda vez para significar la 'cantidad' de productos comprados.
Ejemplo: Correcto
<report> <invoice> <price>25</price> <currency>Dollar</currency> .... </invoice> <description> <item>Widgets</item> <quantity>25</quantity> </description> </report>
En el ejemplo de arriba, el significado de todos los elementos es claro y ninguno de los elementos individuales puede sobrecargarse.
... <par> <video src="anchor.mpg" ... /> <switch> <audio src="HiQuality.wav" systemBitrate="56000" ... /> <audio src="MedQuality.wav" systemBitrate="28800" ... /> <audio src="LowQuality.wav" ... /> </switch> </par>
El contenido Web está cambiando rápidamente desde páginas estáticas a páginas dinámicas, llamadas aplicaciones Web. A menudo esto se hace utilizando un lenguaje de guión (scrpting languaje) basado en eventos callback. El diseñador del lenguaje debe asegurarse de que el modelo que elija permite al usuario el control de la presentación. Siempre asegúrese de que nada en los aspectos de presentación del documento intenta restringir el control del usuario sobre cómo se accede a la instancia del documento.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>Outline of x</title> <body> <-- This provides the link back to the full source document --> <a href="source.xml">full source of document</a> <h3>Outline view</h3> <p> <xsl:for-each select="//section"> <xsl:number level="multiple" count="section" format="1.1.1"/> <xsl:value-of select="title"/> <br /> </xsl:for-each> </p> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="*"/> </xsl:stylesheet>
<script> function DoOnActivate(evt) { .. } </script> <g onactivate="DoOnActivate(evt)"> <rect id="button" x="500" y="500" width="250" height="40"/> </g>
Asegúrese de que todas las personas pueden entender su diseño y mapear hacia y desde sus elementos y hacer fácilmente aserciones sobre ellos. Además, asegúrese de proporcionar sus propias primeras aserciones sobre sus lenguajes: por ejemplo, no haga que los usuarios tengan que suponer el propósito de un elemento.
<?xml version="1.0" encoding="utf-8"?> <my:doc xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/schemas/doc.xsd" xmlns:my="http://www.jenitennison.com/" xmlns="http://www.w3.org/1999/xhtml">
Ejemplo: TREX
<element name="paragraph"> <xsd:annotation>the lowest level block container.</xsd:annotation> <empty/> </element>
<xsd:element name="head" type="xsd:string"> <xsd:annotation> <xsd:documentation xml:lang="en-US">Title of the section. Required for table of contents generation. </xsd:documentation> </xsd:annotation> </xsd:element>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml> <head> <title>Mapping of language MenuML to html</title> <body> <h1>Menu of: <xsl:value-of select="menu/"/></h1> <h2>Appetizer: <xsl:value-of select="menu/appetizer/"/></h2> etc... </body> </html>
técnica MenuML: use el contenido del elemento photo para indicar el equivalente textual de una foto.
técnica MenuML: utilice el elemento appetizer para introducir un nuevo "aperitivo", no lo utilice para conseguir un efecto de fuente mayor
Ejemplo: Errado
<element name="paragraph"> <xsd:annotation> <xsd:documentation>paragraph</xsd:documentation> </xsd:annotation> <empty/> </element>
Aquí el nombre de elemento ha sido descrito utilizando sólo el nombre del elemento, lo que no añade valor semántico.
Ejemplo: Correcto
<element name="paragraph"> <xsd:annotation> <xsd:documentation>The lowest level block container. </xsd:documentation> </xsd:annotation> <empty/> </element>
Aquí el nombre de elemento ha sido descrito de manera alternativa para aclarar el significado semántico en vez de solo reforzar el nombre, repitiéndolo.
En la presentación de las directrices de accesibilidad para XML, nosotros tratamos de separar las directrices abstractas de las técnicas de aplicación. Esto nos permite hablar sobre principios generales de las directrices sin gastar tiempo en intentar resolver los problemas de aplicación.
De hecho, hay varias técnicas para obtener los mismos resultados y la decisión de las personas estará en función del tiempo y de los productos disponibles y de su propio compromiso con la accesibilidad.
Por ejemplo, si un diseñador de XML quiere crear algún tipo de elemento de "lista" en un marcado dado, puede hacerlo aplicando varias técnicas:
Esquema: A pesar de que utilizamos el término "esquema", no queremos que la gente asuma que estamos hablando sólo sobre un esquema tal como está definido en XML Schema sino, sobre algún documento o colección de documentos que contengan todas las referencias para la interpretación de un documento que está codificado de acuerdo con el uso de alguna aplicación o comunidad de discurso. "Perfil" podría ser una palabra mejor para el uso que nosotros le damos.
Un esquema XML es accesible si posibilita y promueve activamente la creación de documentos accesibles.
Un documento es accesible si puede ser entendido igualmente por su público objetivo independientemente del dispositivo usado para acceder a él.
Un documento accesible también se define como uno que conforma las Web Content Accessibility Guidelines.
La palabra "promueve" es importante ya que la palabra "posibilita" por sí sola no cubre el caso de que un esquema pudiera incluir una representación engañosa abierta en alguna parte y alegar la accesibilidad mínima.
Por ejemplo, supongamos que HTML no tuviera un atributo ALT en IMG, en teoría seguiría "posibilitando" la creación de documentos accesibles, ya que los archivos HTML llevan contenido en formato texto y uno podría poner siempre la descripción de las imágenes en él, como en: <IMG SRC="Tasas.gif"> Cómo pagar sus tasas
pero esto no "promueve" la accesibilidad ya que la mayoría de los autores no querrían repetir "Cómo pagar sus tasas" si el logo ya dice "Cómo pagar sus tasas" (asumiendo que no se usen CSS para esto en vez de un bitmap). Teniendo el atributo ALT se "promueve" la accesibilidad ya que ello permite a las imágenes ser descritas sin pérdidas de presentación - tales como la duplicación - para los visualizadores de imágen.
En cualquier caso, la accesibilidad no consiste sólo en el contenido alternativo, tal como mostrará la siguiente sección.
La palabra "dispositivo" también es importante ya que abarca más que sólo la independencia de los medios: se refiere tanto a dispositivos de salida (gráfica, por voz, braille, sólo texto) como de entrada (ratón, teclado, por voz, pantalla tactíl, teclado comprimido).
Este término también conlleva potencialmente los problemas relativos a la disponibilidad de contar con banda ancha (o la carencia de ella), en los casos en que el acceso a los datos, debido a su volúmen, llega a ser imposible con conexiones lentas.
Los términos "entendido igualmente" son críticos cuando se permite alguna forma de transformación airosa cuando se presentan los documentos en algún medio diseñado en principio para contener otro tipo de medios.
Transformación airosa es un concepto clave en el área de la accesibilidad. Definámoslo.
Definición:
Por ejemplo, supongamos que yo necesito revisar el horario de trenes de la línea amarilla en Internet y no tengo acceso visual a la Web. El sitio Web de los ferrocarriles utiliza un icono animado de un vagón amarillo para llevarme al horario, y no proporciona una etiqueta en alguna parte diciendo que es para la línea amarilla, sólo confía en mi capacidad de ver el color, de repente yo no puedo entender este sitio: no se transforma airosamente.
Si el diseñador del esquema no ha proporcionado una manera de añadir contenido alternativo para algunos elementos enriquecidos, como un vagón amarillo animado, el provedor de contenidos no alcanzará, con esta información, a toda su audiencia.
Supongamos ahora que en una página diferente este sitio Web proporciona un bonito mapa "clicable" en 2D con todas las paradas, y me pide que seleccione mi punto de partida y de destino. Si se proporciona en formato texto una simple lista de las paradas de la línea, esto se transformará airosamente: no es tan rápido como un par de pulsaciones del ratón, de manera que hay una cierta "degradación" en el sistema, pero un usuario que depende del texto puede obtener la información.
Además de los editores, los siguientes participantes del Grupo de Trabajo de Protocolos y Formatos del WAI (PF) han contribuido directamente al contenido de este documento:
Kynn Bartlett , Geoff Freed, Al Gilman, Vijay Gummadi, Ian Jacobs, Chris Lilley, William Loughborough, Charles McCathieNevile, Dave Pawson, Gregory J. Rosmaita, Aaron Swartz y Carlos A. Velasco.