Acid3
zrzut ekranu | |
Typ strony |
test standardów webowych |
---|---|
Data powstania | |
Autor | |
Właściciel | |
Rejestracja |
nie |
Strona internetowa |
Acid3 – test z serii Acid, który ma pomóc przeglądarkom internetowym w spełnieniu standardów internetowych wyznaczanych przez organizację W3C.
Test był opracowywany w ramach organizacji Web Standards Project (WaSP) od kwietnia 2007, a oficjalnie wydany 3 marca 2008[1]. Głównym twórcą Acid3 był Ian Hickson, który przygotowywał również poprzednią wersję – Acid2[2][3].
Przebieg testu
[edytuj | edytuj kod]Acid3 przebiega nieco inaczej niż jego poprzednik. Składa się on z wielu mniejszych podtestów, które są uruchamiane zaraz po wejściu na stronę, a wyniki podawane są na bieżąco. Stąd łatwiej można ocenić, ile z testowanych właściwości nie działa jeszcze zgodnie ze standardami.
Zgodnie z zaleceniami twórców, testy powinny być przeprowadzane przy standardowych ustawieniach przeglądarki, czyli takich, które posiadałby użytkownik, który nie chciał, bądź nie potrafił niczego zmienić po jej zainstalowaniu.
Aby przeglądarka przeszła test w całości, nie tylko musi osiągnąć wynik 100/100, ale także animacja powinna przebiegać płynnie, a po zakończeniu poszczególnych podtestów strona powinna wyglądać identycznie (co do piksela) jak strona wzorcowa oglądana w tej samej przeglądarce. Sama strona wzorcowa może jednak wyglądać nieco inaczej w różnych przeglądarkach ze względu na różnice w rasteryzacji fontów.
Wymagana płynność animacji została określona na ok. 30 fps (33 ms na test)[4]. Można to zweryfikować oglądając szczegółowy raport wydajności i błędów. W tym celu, po zakończeniu testu, należy przytrzymać klawisz ⇧ Shift i kliknąć myszką na A (w słowie Acid).
Testowane elementy
[edytuj | edytuj kod]Poprzedni test sprawdzał standardy, które mają większe znaczenie w statycznych stronach. Obecny ma na celu sprawdzenie zdolności przeglądarek do wyświetlania i tworzenia dynamicznych stron według powszechnie przyjętych standardów tj. obiektowego modelu dokumentu (DOM) na poziomie 2 (DOM Level 2) i standardu dla dynamicznych skryptów wykonywanych po stronie użytkownika – ECMAScript.
Dodatkowo testowane są również niektóre z elementów innych standardów uznanych przez twórców testu za szczególnie przydatne do tworzenia dynamicznych stron Web 2.0[5], tj.
- zagnieżdżania dodatkowych elementów według standardu HTML4 (
<object>
,<iframe>
itp.) - prawidłowa obsługa protokołu HTTP (Content-Type, 404 itp.)
- elementy XHTML 1.0
- CSS
- CSS2 (@font-face)
- CSS2.1 (’inline-block’, ‘pre-wrap’, parowanie itp.)
- CSS2 i CSS3 – selektory (:lang, :nth-child(), łączenie selektorów, dynamiczne zmiany selektorów itp.)
- CSS3 – kolory (rgba(), hsla() itp.)
- CSS3 – interfejs użytkownika (’cursor’)
- Media Queries, czyli możliwość szczegółowego wyboru medium, do którego będzie odnosił się arkusz CSS
- Data URL, czyli zagnieżdżanie specjalnie zakodowanych informacji (np. obrazków) w adresie URL
- SVG (animacje, fonty itp.)
Elementy, które można sprawdzić jedynie poprzez porównanie ze stroną wzorcową:
- CSS2.x – pobieranie fontów
- CSS3 – cienie tekstu
Możliwość pobierania fontów jest testowana za pomocą niestandardowego fontu TrueType „Ahem”, w którym większość znaków, to po prostu zamalowany kwadrat. Za pomocą tego fontu w prawym górnym rogu ekranu wyświetlana jest litera X. Kolor tła jest ustawiony na różowy, a znaków na biały, dlatego jeśli font nie zostanie prawidłowo pobrany, to w rogu pojawi się biała litera X na różowym tle, a w przeciwnym wypadku tło będzie zasłonięte przez znak.
Natomiast cień powinien być widoczny dla tekstu „Acid3”, który jest narysowany dużym stopniem pisma.
Podział na podtesty
[edytuj | edytuj kod]Acid3 został podzielony na 100 podtestów podzielonych z kolei na 6 grup, zwanych „wiadrami” (ang. buckets):
- Bucket 1: DOM Traversal, DOM Range, HTTP
- Bucket 2: DOM2 Core, DOM2 Events
- Bucket 3: DOM2 Views, DOM2 Style, selektory i Media Queries
- Bucket 4: Zachowanie się formularzy i tabel HTML, podczas przetwarzania przez skrypty oraz DOM2 HTML
- Bucket 5: Testy pochodzące z zawodów Acid3 Competition (SVG, HTML, SMIL, Unicode, ...)
- Bucket 6: ECMAScript
Wynik testów w poszczególnych przeglądarkach
[edytuj | edytuj kod]Wartość licznika procentowego opiera się na liczbie zdanych podtestów. Oznacza to, że niektóre przeglądarki mogą mieć większy wynik w teście, a jednocześnie nie będzie to oznaczać, że są bardziej odpowiednie dla dynamicznych stron serwisów Web 2.0 (mogą np. przejść więcej mniej istotnych testów).
Pierwsza zapowiedź przejścia wszystkich testów padała w zapowiedzi Opery[6]. Testowa wersja ich silnika WinGogi/LinGogi została jednak wydana 28 marca 2008[7]. Było to dzień po tym, jak twórcy WebKit wydali pierwszą publiczną wersję przeglądarki, która potrafiła przejść test w sensie zgodności ze standardami (wynik 100/100)[8]. Jednak (podobnie jak w wersji Opery) parę podtestów wciąż działało zbyt wolno, by cały test był w pełni udany.
17 września 2011 Ian Hickson oraz Håkon Wium Lie ogłosili, że niektóre testy Acid3 związane z fontami SVG, animacjami SMIL w SVG i paroma innymi zostały wyłączone[9]. Zmiany te spowodowały, że część przeglądarek, które miały wówczas problemy z tymi testami, zaczęły przechodzić cały test Acid3 w sensie zgodności z testowanymi standardami (m.in. Internet Explorer oraz Firefox). Jak tłumaczył Ian Hickson, zmiany były spowodowane koniecznością wprowadzenia zmian w samych standardach.
Zestawienie wyników procentowych
[edytuj | edytuj kod]Legenda: | ||||
---|---|---|---|---|
0-45 | 46-70 | 71-90 | 91-99 | 100 |
Wersja | Typ wersji | Data wydania | Wynik[a] | Komentarz |
---|---|---|---|---|
Safari (Mac OS X 10.4.3+, Windows XP i Vista) | ||||
5.0 | stabilna | 2010-06-08 | 100 | Test 69 wciąż wykonuje się zbyt wolno. |
4.0.2 | stabilna | 2009-07-08 | 100 | Test 69 wciąż wykonuje się zbyt wolno. |
3.1.2 | przestarzała | 2008-06-19 | 75 | |
Google Chrome (Windows, Linux, Mac OS X) | ||||
11.0.696 | przestarzała | 2011-04-27 | 100 | Test 26 wykonuje się zbyt wolno. |
10.0.648 | przestarzała | 2011-03-08 | 100 | Test 69 wykonuje się zbyt wolno. |
8.0.552 | przestarzała | 2010-12-03 | 100 | Test 71 wykonuje się zbyt wolno. |
6.0.472 | przestarzała | 2010-09-07 | 100 | |
5.0.375 | przestarzała | 2010-06-08 | 100 | Test 69 wciąż wykonuje się zbyt wolno. |
4.0.302 | przestarzała | 2009-12-04 | 100 | Test 69 wykonuje się zbyt wolno. |
2.0.172 | przestarzała | 2009-05-21 | 100 | Wciąż pojawia się komunikat „LINKTEST FAILED”. |
1.0.154 | przestarzała | 2008-12-11 | 79 | |
Opera (Windows, Linux, Mac OS X) | ||||
11.61 | stabilna | 2012-01-23 | 100 | Testy 26, 69 i 71 wykonują się zbyt wolno. |
10.60 | przestarzała | 2010-07-01 | 100 | Test 69 wykonuje się zbyt wolno. |
9.64 | przestarzała | 2009-03-03 | 85 | Działa także w starych wersjach Windows (od 95) |
Firefox (Windows, Linux, Mac OS X) | ||||
89.0 | stabilna | 2021-06-01 | 93 | |
88.0.1 | stabilna | 2021-05-05 | 97 | |
52.2.1 ESR (64-bit i 32-bit) | stabilna | 2017-06-29 | 98 lub 99 [1] |
Wynik zmienny zależny od kolejnych przeładowań strony. Możliwy antywzorzec projektowy „system z wyścigami”. Często nie przechodzi testu 72, nie przechodzi w ogóle testu 35. |
10.0.2 | stabilna | 2012-02-16 | 100 |
Test 26 wykonuje się za wolno. |
7.0 | przestarzała | 2011-09-27 | 100 | |
4.0 | przestarzała | 2011-03-22 | 97 | Nie przechodzi testów: 77-79. |
3.6.10 | przestarzała | 2010-09-15 | 94 | Nie przechodzi testów: 71 i 75-79. |
2.0.0.20 | przestarzała | 2008-12-18 | 52 | Działa także w starych wersjach Windows (od 98) |
Konqueror (Windows, Linux z KDE) | ||||
4.8.2 | stabilna | 2012-04-04 | 92 | |
Internet Explorer (Windows) | ||||
9.0.8112.16421 | stabilna | 2011-10-11 | 100 | Test 26 wykonuje się zbyt wolno, są problemy z testem 69. |
8.0.6001.18702 | stabilna | 2009-03-19 | 23 | |
7.0.5730.13 | przestarzała | 2007-10-26 | 12 | |
6.0.2800 | przestarzała | 2002-09-09 | 11 | Działa także w starych wersjach Windows (od 98) |
Graficzne wyniki testu
[edytuj | edytuj kod]Silnik | Wyniki testu różnych wersji | ||
---|---|---|---|
Wersja z okresu wydania Acid3 | Najnowsza, stabilna wersja (pierwsza z wynikiem 100/100) |
Najnowszej wersja robocza (tam gdzie stabilna nie przeszła testu) | |
WebKit | Safari 3.0.4 |
Safari 4.0.2 |
Chromium 55.0.2883.87 - dwie różowe pionowe linie w górnym prawym rogu, nieobecne we wzorcu. |
Presto | Opera 9.27 |
Opera 10.0 |
— |
Gecko | Firefox 2.0.0.12 |
Firefox 13.0.1 |
— |
KHTML | Konqueror 4.0.2 |
— | — |
Trident | Internet Explorer 7.0 |
Internet Explorer 10.0 |
— |
Rozwój Acid3 i jego wpływ na rozwój przeglądarek
[edytuj | edytuj kod]Prace nad pierwszą wersją testu
[edytuj | edytuj kod]Ian Hickson rozpoczął prace nad Acid3 już w kwietniu 2007, jednak prace postępowały powoli. W grudniu 2007 prace zostały wznowione, a szersze informacje o nich zostały podane 10 stycznia 2008 w blogach przez Anne van Kesteren[10] i Dustina Brewer[11]. W tym czasie zestaw był osiągalny pod wiele mówiącym adresem: „http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html” (...jeszcze nie gotowy, proszę nie używać). To nie powstrzymało jednak szerokiego zainteresowania ze strony społeczności programistów internetowych.
14 stycznia 2008 wciąż brakowało jeszcze 16 ze stu planowanych podtestów, stąd najpierw na blogu Iana Hicksona[12], a potem także na stronie WaSP[13] ogłoszono konkurs na dopisanie pozostałych 16 podtestów.
Poniżej wymienieni programiści mają swój udział w budowaniu ostatecznej wersji testu Acid3, właśnie poprzez udział we wspomnianym konkursie:
- Sylvain Pasche – test 66-67 (DOM),
- David Chan – test 68 (UTF-16),
- Simon Pieters i Anne van Kesteren – test 71 (analiza składniowa HTML),
- Jonas Sicking i Garret Smith – test 72 (dynamiczne modyfikacje węzłów tekstowych stylów blokowych),
- Jonas Sicking – test 73 (zagnieżdżone zdarzenia),
- Erik Dahlstrom – test 74-78 (SVG i SMIL),
- Cameron McCormack – test 79 (fonty SVG).
Rozwój przeglądarek i zmiany w teście
[edytuj | edytuj kod]Wpływ Acid3 na rozwój przeglądarek internetowych okazał się znaczący jeszcze przed jego oficjalnym wydaniem. Dla przykładu silnik przeglądarek internetowych WebKit, w ciągu mniej niż miesiąca uzyskał wzrost liczby zdanych podtestów z 60 do 87[14].
Jak określał to główny twórca testu, Ian Hickson, pierwszą wersję Acid3 uznano za „wystarczająco stabilną”, by można było jej używać[14]. Hickson przewidywał początkowo, że po paru miesiącach wyniki przeglądarek będą zbliżać się do wyniku 100/100, a programiści zaczną zgłaszać błędy w podtestach.
Tymczasem już po niecałym miesiącu od premiery testu programiści Opery i Apple (Safari) ogłosili, że robocze wersje ich przeglądarek przechodzą test. Jednocześnie programiści faktycznie wraz ze zbliżaniem się do setki zaczęli zgłaszać błędy w teście. 26 marca 2008 Hickson ogłosił na swoim blogu, że część ze zgłaszanych uwag była zasadna i wprowadził odpowiednie poprawki w kilku podtestach, a część z nich zaktualizował[15]. Jeszcze tego samego dnia programista Apple znalazł błąd w podteście związanym z SVG i pomógł go naprawić[16]. Błąd ten wiązał się z mylną interpretacją specyfikacji i dlatego Opera przechodząc ten podtest w starej wersji, również zachowywała się nieprawidłowo. Dwa dni później 29 marca 2008 Ian opisał dodatkowy problem i drobną zmianę w podteście dotyczącym sztucznego fontu „Ahem”, który jednak dotyczył tylko Maca, a więc nie zmienia wyniku Opery. Problem był powiązany z antyaliasingiem czcionek, który zmieniał wielkość znaku, który zasłaniał wówczas część obramowania, co twórcy Safari próbowali ominąć poprzez wyłączenie antyaliasingu tego fontu[17].
Parę dni później Hickson zmienił jeszcze jeden podtest (nr 26), który jest jednym z testów badających wydajność przeglądarki. Zmiana ma ułatwić miarodajne testowanie przeglądarek na różnych komputerach. Wyjaśnił także, co miał na myśli pisząc, że animacja musi być płynna. Mianowicie żaden z testów nie może trwać dłużej niż 33 ms, przy czym według Hicksona tak naprawdę tylko wspomniany podtest nr 26 powinien zajmować znaczącą ilość czasu. To wszystko przy założeniu, że dane są pobierane z cache'u przeglądarki, a więc przy ponownym uruchomieniu testu. Jednak w związku z tym, że standardy nie określają ściśle wydajności, wynik liczbowy 100/100 jest wystarczający do przejścia testu w sensie zgodności ze standardami[4].
Uwagi
[edytuj | edytuj kod]- ↑ Wynik liczbowy może być inny przy ponownym uruchomieniu testu i jest to zalecane działanie. Wynika to z tego, że niektóre podtesty przy pobieraniu danych z cache'u mogą trwać krócej niż za pierwszym razem. Ponowne uruchomienie testu ma uniezależnić wyniki od sprawności połączenia z serwerem zewnętrznym. Stąd też dla programistów naprawiających błędy istotniejsze od wyniku liczbowego mogą być szczegółowe komunikaty widoczne w raporcie (patrz Przebieg testu).
Przypisy
[edytuj | edytuj kod]- ↑ Acid3: Putting Browser Makers on Notice, Again – WaSP
- ↑ Ian Hickson , People who don't realise that they're wrong, „Hixie's Natural Log”, 20 stycznia 2006 (ang.).
- ↑ Kimberly Blessing , What’s the best test for Acid3? [online], Web Standards Project, 16 stycznia 2008 [dostęp 2022-02-11] (ang.).
- ↑ a b The performance aspect of Acid3 – blog Iana Hicksona
- ↑ Informacje o teście Acid3 na witrynie WaSP
- ↑ Opera and the Acid3 Test – Opera Desktop Team. [dostęp 2008-03-28]. [zarchiwizowane z tego adresu (2008-03-28)].
- ↑ Public Acid3 build – Opera labs. [dostęp 2011-10-26]. [zarchiwizowane z tego adresu (2011-10-26)].
- ↑ Maciej Stachowiak: WebKit achieves Acid3 100/100 in public build. Surfin’ Safari Blog, 2008-03-26. [dostęp 2010-01-11]. (ang.).
- ↑ Ian Hickson: Acid3 2011 Update. 2011-09-17. [dostęp 2011-12-04]. (ang.).
- ↑ Acid3 – blog Anne van Kesteren
- ↑ Developers are working on ACID3 test – blog Dustina Brewer
- ↑ The competition for you to come up with the best test for Acid3 – blog Iana Hicksona
- ↑ What’s the best test for Acid3? – WaSP. [dostęp 2016-12-28]. [zarchiwizowane z tego adresu (2016-12-28)].
- ↑ a b Moebius (announcement of the completion of the test) – blog Iana Hicksona
- ↑ Tests that are never quite finished – blog Iana Hicksona
- ↑ Last minute changes to Acid3 – blog Iana Hicksona
- ↑ The antialiasing controversy in Acid3 – blog Iana Hicksona
Linki zewnętrzne
[edytuj | edytuj kod]- Strona testowa Acid3 (ang.)
- Obrazek referencyjny (ang.)