RSS

Czy warto trzymać się standardów?

Liczba odsłon: 15

Kilka dni temu pisałem o zmia­nach wprowa­dzonych w kodzie serwisu Świat owoców, których efektem było przywró­cenie popraw­nej wali­dacji kodu przez serwis W3 Vali­dator. Nie dla wszystkich jednak pełna popraw­ność syntak­tyczna kodu jest istotna. Autor świet­nego skąd­inąd blogu Coding Horror zadał ostatnio pub­licznie pytanie czy pop­raw­ność kodu ma w ogóle jakie­kol­wiek znaczenie.

Swój wywód Autor rozpo­czyna od opi­sania niezwykłej odpor­ności przeglą­darek inter­neto­wych na nie­pop­rawny kod. Postrzega tę cechę jako niezbędną w świecie Inter­netu, w którym serwis WWW musi działać nieza­leżnie od tego, czy jakiś drobny błąd w infor­macji pobie­ranej z bazy narusza spójność syntak­tyczną kodu. Jako dowód podaje wyniki badań, według których wiele ważnych serwisów inter­netowych ma nie­pop­rawny kod HTML.

Na tej pod­stawie Autor wyciąga odważny wniosek, że popraw­ność kodu jest nie­istotna dla czytel­ników. W efekcie, choć nie odradza wali­dacji (a nawet zachęca do wyko­rzysty­wania jej jako metody wykry­wania poważnych, a często łatwych do usu­nięcia błędów w struk­turze lub składni kodu), suge­ruje, by nie przej­mować się popraw­nością kodu i nie walczyć o uzys­kanie komuni­katu o zerowej liczbie nie­zgod­ności ze stan­dardem.

Tutaj, niestety, bez­względ­nie nie mogę się z nim zgodzić.

To, że dzisiejsze przeglą­darki są w stanie zazwyczaj pop­rawnie wyświet­lać nieprawid­łowy kod jest właśnie skut­kiem wielo­let­niego braku stan­dardów. Język HTML był rozwi­jany jako prymi­tywny sposób kodo­wania formato­wania tekstu, bardzo wcześnie odchodząc od swojego idealnie sfor­malizowa­nego przodka, jakim był SGML. Dopiero od nie­dawna, wraz z upow­szech­nie­niem języka XML, walczy się o narzu­cenie jedno­litych reguł tworzenia kodu HTML; efektem tego jest standard XHTML. Ignoro­wanie stan­dardów i lekcewa­żenie popraw­ności kodu to prosta droga do prolife­racji bałaganu.

Trzymanie się stan­dardu oznacza też mniejsze ryzyko nie­prze­widy­walnej inter­pre­tacji kodu. Przeglą­darki mogą świetnie sobie radzić z błędami w kodzie, jednak każda może inaczej interpre­tować błędy. Efektem jest rozjeż­dżanie się strony po wyświet­leniu jej w przeglą­darce innej niż używana przez twórcę. Co by nie mówić, strony w 100% zgodne ze standar­dami są wyświetlane przynajmniej względnie poprawnie nawet w znanej ze specy­ficznej interpre­tacji kodu przeglą­darce Internet Explorer.

Będę zatem twardo stał przy zdaniu, że należy trzymać się stan­dardów. Tylko ściśle implemen­tując kod XHTML możemy mieć nadzieję na szybciej działa­jące, pozba­wione warstwy kompa­tybil­ności przeglą­darki WWW, wyświetla­jące w idealnie spójny sposób skompliko­wane strony WWW zbudo­wane nie tylko z myślą o ładnym wyglądzie, ale też o udostęp­nianiu struktu­ralnych infor­macji możliwych do auto­matycz­nego przetwo­rzenia na inne formaty — dokumenty tekstowe, prezen­tacje czy ulotki.


Co do xhtml: „In fact, the vast majority of supposedly XHTML documents on the internet are served as text/html. Which means they are not XHTML at all, but actually invalid HTML that’s getting by on the error handling of HTML parsers. All those “Valid XHTML 1.0!” links on the web are really saying “Invalid HTML 4.01!”.”[1]

1. http://webkit.org/blog/68/understanding-html-xml-and-xhtml/
Poprawnie zapisany kod XHTML (nie tylko zgodnie z wymogami XML, ale też w sposób nie kłócący się ze składnią HTML) jest zgodny z HTML 4.
Poza tym, kod XHTML wyposażony w link do DTD może być rozpoznany jako XHTML niezależnie od Content-Type.