La prueba Acid3 es una página de prueba web del Proyecto de Estándares Web que verifica el cumplimiento de un navegador web con elementos de varios estándares web , particularmente el Modelo de Objetos de Documento (DOM) y JavaScript .
Si la prueba tiene éxito, los resultados de la prueba Acid3 mostrarán un contador de fracciones que aumentará gradualmente debajo de una serie de rectángulos de colores. El número de subpruebas superadas indicará el porcentaje que se mostrará en pantalla. Este porcentaje no representa un porcentaje real de conformidad ya que la prueba realmente no realiza un seguimiento de las subpruebas que realmente se iniciaron (se supone 100). Además, el navegador también debe representar la página exactamente como se muestra la página de referencia en el mismo navegador. Al igual que el texto de la prueba Acid2 , el texto de la representación de referencia de Acid3 no es un mapa de bits, para permitir ciertas diferencias en la representación de fuentes.
Acid3 estuvo en desarrollo desde abril de 2007, [1] y se lanzó el 3 de marzo de 2008. [2] El desarrollador principal fue Ian Hickson , un empleado de Google que también escribió la prueba Acid2. Acid2 se centró principalmente en hojas de estilo en cascada (CSS), pero esta tercera prueba Acid también se centra en tecnologías utilizadas en sitios web altamente interactivos característicos de la Web 2.0 , como ECMAScript y DOM Nivel 2 . Algunas subpruebas también se refieren a gráficos vectoriales escalables (SVG), lenguaje de marcado extensible ( XML ) y URI de datos . Incluye varios elementos de la recomendación CSS2 que luego se eliminaron en CSS2.1 , [ cita necesaria ] pero se reintrodujeron en los borradores de trabajo de CSS3 del World Wide Web Consortium (W3C) que aún no han llegado a las recomendaciones candidatas.
En abril de 2017, las especificaciones actualizadas divergieron de la prueba, de modo que las últimas versiones de Google Chrome , Safari y Mozilla Firefox ya no pasan la prueba tal como están escritas. [3] Hickson reconoce que algunos aspectos de la prueba fueron controvertidos y ha escrito que la prueba "ya no refleja el consenso de los estándares web que pretende probar, especialmente cuando se trata de problemas que afectan a los navegadores móviles". [4]
La parte principal de Acid3 está escrita en ECMAScript ( JavaScript ) y consta de 100 subpruebas en seis grupos llamados "depósitos", incluidas cuatro subpruebas especiales (0, 97, 98 y 99). [5]
Los criterios de cumplimiento requieren que la prueba se ejecute con la configuración predeterminada del navegador. La representación final debe tener una puntuación de 100/100 y debe ser idéntica en píxeles a la representación de referencia. [8] En los navegadores diseñados para computadoras personales, la animación también debe ser fluida (no necesita más de 33 ms para cada subprueba en hardware de referencia equivalente a una computadora portátil Apple de alta gama ), [9] aunque más lenta. El rendimiento en un dispositivo lento no implica no conformidad. [10]
Para pasar la prueba, el navegador también debe mostrar un favicon genérico en la barra de herramientas del navegador, no la imagen del favicon del servidor web Acid3. El servidor Acid3 cuando se le solicita favicon.ico
da un código de respuesta 404 , pero con datos de imagen en el cuerpo. Esto prueba que el navegador web maneja correctamente el código de error 404 al recuperar el favicon, tratándolo como una falla y mostrando el ícono genérico en su lugar. [11]
Cuando se esté ejecutando la prueba, los rectángulos se agregarán a la imagen renderizada; la cantidad de subpruebas aprobadas en el grupo determinará el color de los rectángulos.
Tenga en cuenta que Acid3 no muestra exactamente cuántas subpruebas se aprobaron en un depósito. Por ejemplo, si se aprueban 3 subpruebas y se aprueban 4 subpruebas en el segmento 2, se generaría un rectángulo negro.
Después de que la página de prueba de Acid3 esté completamente representada, se puede hacer clic en la letra 'A' de la palabra "Acid3" para ver una alerta (o presionar Mayús y hacer clic para abrir una nueva ventana) que explica exactamente qué subpruebas fallaron y cuál fue el mensaje de error. En caso de que una de las 100 pruebas haya pasado pero haya tomado demasiado tiempo, el informe incluye los resultados del tiempo para esa única prueba. La alerta informa el tiempo total de toda la prueba Acid3.
Para realizar la prueba correctamente, los agentes de usuario deben implementar las especificaciones CSS 3 Text Shadows y CSS 2.x Downloadable Fonts, que actualmente están siendo consideradas por el W3C para su estandarización. Esto es necesario ya que la prueba utiliza una fuente TrueType personalizada , llamada "AcidAhemTest", para cubrir un cuadrado rojo de 20x20. Sin embargo, la especificación CSS no exige la compatibilidad con fuentes Truetype. Un navegador que admita únicamente fuentes OpenType con contornos CFF o fuentes OpenType integradas podría admitir el estándar CSS, pero no pasar la prueba Acid3. El glifo , cuando se representa con la fuente descargada, es simplemente un cuadrado, blanco con CSS y, por lo tanto, invisible. [12]
Además, la prueba también utiliza imágenes codificadas en Base64 , algunos selectores más avanzados, valores de color CSS 3 (HSLA), así como selectores y valores falsos que deben ignorarse.
Ian Hickson, empleado de Google, empezó a trabajar en la prueba en abril de 2007, pero el desarrollo avanzó lentamente. En diciembre de 2007, el trabajo se reanudó y el proyecto recibió atención pública el 10 de enero de 2008, cuando Anne van Kesteren lo mencionó en los blogs . [13] En ese momento el proyecto residía en una URL que mostraba claramente su naturaleza experimental: "http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html". A pesar del aviso en la URL, la prueba recibió amplia atención en la comunidad de desarrollo web. En ese momento sólo se habían realizado 84 subpruebas y el 14 de enero Ian Hickson anunció un concurso para completar las 16 que faltaban. [14]
Los siguientes desarrolladores contribuyeron a la prueba final a través de este concurso:
Incluso antes de su lanzamiento oficial, el impacto de Acid3 en el desarrollo de navegadores fue espectacular. En particular, la puntuación de WebKit aumentó de 60 a 87 en menos de un mes. [15]
La prueba se publicó oficialmente el 3 de marzo de 2008. [2] Se esperaba que en unos pocos meses siguieran una guía y un comentario, [15] pero, en marzo de 2011, sólo se había publicado el comentario. El anuncio de que la prueba está completa significa sólo que debe considerarse "suficientemente estable" para su uso real. Se encontraron algunos problemas y errores con la prueba y se modificó para solucionarlos. [16] [17] El 26 de marzo de 2008, el día en que los equipos de Opera y WebKit anunciaron una puntuación de 100/100, los desarrolladores de WebKit contactaron a Hickson sobre un error crítico en Acid3 que presumiblemente permitió que se aprobara una violación del estándar SVG 1.1. Hickson solucionó el error con la ayuda de Cameron McCormack, miembro del Grupo de Trabajo SVG del W3C. [18] [19]
En 2008, las versiones de desarrollo de los motores de diseño Presto [20] [21] y WebKit [19] [22] (utilizados por Opera y Safari respectivamente) obtuvieron una puntuación de 100/100 en la prueba y representaron la página de prueba correctamente. En ese momento, ningún navegador que utilizara los motores de diseño Presto o WebKit pasó el aspecto de rendimiento de la prueba. [23] [24]
Google Chrome y Opera Mobile [25] obtuvieron una puntuación de 100/100. [26] Las preocupaciones de seguridad sobre las fuentes descargables retrasaron la aprobación de Chrome. [27]
La versión 68 y posteriores de Chrome obtiene una puntuación de 97/100.
En el momento del lanzamiento de Acid3, los desarrolladores de Mozilla Firefox se habían estado preparando para el inminente lanzamiento de Firefox 3 , centrándose más en la estabilidad que en el éxito de Acid3. En consecuencia, Firefox 3 obtuvo una puntuación de 71. [28] Firefox 3.5 obtuvo una puntuación de 93/100 y Firefox 3.6 obtuvo una puntuación de 94/100. Inicialmente, Firefox 4 obtuvo una puntuación de 97/100 porque no admitía fuentes SVG. Más tarde, Firefox 4 obtuvo una puntuación de 100/100, porque las pruebas de fuentes SVG se eliminaron de Acid3.
Según el empleado de Mozilla, Robert O'Callahan, Firefox no admitía fuentes SVG porque Mozilla consideraba que WOFF era una alternativa superior a las fuentes SVG. [29] Otro ingeniero de Mozilla, Boris Zbarsky, afirmó que el subconjunto de la especificación implementada en Webkit y Opera no ofrece ningún beneficio a los autores o usuarios web sobre WOFF, y afirmó que implementar fuentes SVG completamente en un navegador web es difícil porque era "no está diseñado teniendo en cuenta la integración con HTML". [30]
El 2 de abril de 2010, Ian Hickson realizó cambios menores en la prueba después de que Mozilla, debido a preocupaciones de privacidad, alterara la forma en que Gecko maneja la :visited
pseudoclase. [31] [32]
Firefox 51.0a1 realizó una regresión de 100 a 99 el 14 de septiembre de 2016; Firefox 55.0a1 retrocedió aún más a 97 el 1 de mayo de 2017. [33] En las versiones de Firefox Quantum, 63.0 recibió 97/100; 64.0 obtuvo 96/100, 68.1.0esr y posteriormente [34] obtuvo 97/100. Las versiones 105.0 de Firefox recibieron 99/100, mientras que la 109.0 registró 97/100. A partir de 121,0 obtuvo una puntuación de 97/100 en la prueba.
Microsoft dijo que Acid3 no estaba de acuerdo con el objetivo de Internet Explorer 8 y que IE8 mejoraría sólo algunos de los estándares que Acid3 estaba probando. [35] IE8 obtuvo una puntuación de 20/100, que es mucho peor que la de todos los competidores relevantes en el momento del lanzamiento de Acid3, y tuvo algunos problemas con la representación de la página de prueba de Acid3. El 18 de noviembre de 2009, el equipo de Internet Explorer publicó una entrada de blog sobre el desarrollo inicial de Internet Explorer 9 a partir de la presentación del PDC , mostrando que una compilación interna del navegador podría obtener una puntuación de 32/100. [36]
A lo largo de 2010, varias vistas previas públicas para desarrolladores mejoraron las puntuaciones de las pruebas de Internet Explorer 9 de 55/100 (el 16 de marzo [37] ) a 95/100 (el 4 de agosto). [38] [39] [40] Dean Hachamovich, director general del equipo de IE, argumentó que esforzarse por alcanzar el 100/100 en la prueba Acid3 no es necesario ni deseable. Afirmó que los dos fallos de Acid3 estaban relacionados con funciones (fuentes SVG y animación SMIL) que estaban "en transición". [41]
El sucesor de IE, Microsoft Edge, muestra una puntuación de 97/100 en la versión 109.
Las primeras iteraciones de la prueba fueron criticadas por ser una colección cuidadosamente seleccionada de características que rara vez se usaban, así como aquellas que todavía estaban en un borrador de trabajo del W3C. Eric A. Meyer , un destacado defensor de los estándares web, escribió: "El verdadero punto aquí es que la prueba Acid3 no es una prueba de respaldo de estándares de amplio espectro. Es una obra maestra y, además, una especie de aldea Potemkin . Lo cual es Es una pena, porque lo que realmente se necesita en este momento son conjuntos de pruebas exhaustivas para las especificaciones: XHTML, CSS, DOM, SVG". [42]
"Implementar lo suficiente del estándar para pasar una prueba es falso y no tiene nada que ver con el cumplimiento de los estándares", argumentó el líder de Mozilla UX, Alex Limi, en su artículo "Mythbusting: Why Firefox 4 won't Score 100 on Acid3". Limi argumentó que algunas de las pruebas, particularmente aquellas para fuentes SVG, no tienen relación con el uso real, y las implementaciones en algunos navegadores se han creado únicamente con el fin de aumentar las puntuaciones. [43]
El 17 de septiembre de 2011, Ian Hickson anunció una actualización de Acid3. En palabras de Hickson, Håkon Wium Lie de Opera Software y comentó "las partes de la prueba que podrían cambiarse en las especificaciones". Esperaban que este cambio "permitiera que las especificaciones cambiaran de la manera que fuera mejor para la Web, en lugar de limitar los cambios a que solo fueran cosas que coincidieran con lo que Acid3 probó". [44]
Como resultado, Firefox 4 e Internet Explorer 9 lograron una puntuación de 100/100 en Acid3, pero Internet Explorer no realizó la prueba correctamente porque no admitía sombra de texto hasta Internet Explorer 10. [45]
Acid3 prueba partes de los siguientes estándares:
Una puntuación aprobatoria sólo se considera válida si se utilizó la configuración predeterminada del navegador.
Las siguientes configuraciones del navegador y acciones del usuario pueden invalidar la prueba:
La última versión posterior a 9.5 obtiene una puntuación de 99/100 y no cumple el criterio de suavidad.
La prueba ACID3 es una colección de pruebas interesantes, distribuidas en un gran conjunto de estándares. Algunos de esos estándares verán mejoras en IE8 (de hecho, IE8 ya mejora la puntuación de IE7), pero nos centramos en las características y estándares más importantes para facilitar la vida de los desarrolladores web. La prueba Acid3 no se relaciona directamente con ese objetivo.