Poprawność techniczna (WCAG 2.0 SC 4.1.1, poziom A)

Treści publikowane w Internecie powinny dawać się parsować i walidować, a zatem powinny być poprawne technicznie, zgodne ze specyfikacjami technicznymi. Poprawny kod HTML wydaje się czymś oczywistym i stosunkowo łatwym do zaprogramowania, a przecież tak mało jest serwisów internetowych poprawnych technicznie.

Kryterium sukcesu 4.1.1 zobowiązuje do tworzenia prawidłowego kodu w wypadku stosowania technologii opartych o znaczniki. Znaczniki powinny być prawidłowo otwarte, zamknięte, zagnieżdżone w odpowiedniej kolejności i nie posiadać powtarzających się argumentów. Skorzystają na tym:

  • użytkownicy korzystający z technologii asystujących,
  • roboty sieciowe, które agregują i analizują treści,
  • deweloperzy integrujący różne systemy,
  • administratorzy serwisów.

Wydawałoby się, że stosowanie poprawnego kodu stron internetowych jest oczywistością. Jednak serwisy powstają w wyniku montażu wielu różnych elementów, technologii, gotowych bibliotek, edytorów wizualnych i źródłowych. Bardziej skomplikowana usługa jest właściwie aplikacją uruchamianą w przeglądarce, a jej objętość utrudnia zadbanie o kod.

W sukurs programistom przychodzą walidatory kodu, jak ten oferowany przez World Wide Web Consortium pod adresemvalidator.w3c.org lub Tidy. Pozwalają one na odnalezienie błędów przez wskazanie miejsca, gdzie takowy błąd się znajduje. Dzięki temu można go stosunkowo łatwo usunąć.

Czasem pada pytanie, czy to jest naprawdę takie ważne, skoro strona się wyświetla. Otóż strona się wyświetla w przeglądarce, bo tak się projektuje przeglądarki, by wyświetlały nieprawidłowy kod. Jednakże fakt, że strona „jakoś”się wyświetla, nie powinien przesłaniać nam problemu, jaki może generować dla programów mniej odpornych na błędy. Należą do nich technologie wspomagające, na przykład czytniki ekranu, które korzystają z interfejsów pośredniczących, jak MS Active Accessibility czy też AT-SPI. Jeżeli przeglądarka nie wie, co ma przekazać do tych interfejsów, to może nie przekazać nic lub wykonać operację błędnie. Podobny problem mają roboty sieciowe, które usiłują analizować zawartość stron internetowych, jak choćby wyszukiwarki internetowe. Jeżeli kod jest generowany w locie przez JavaScript, to nawet jeżeli jest poprawny, to nie da się analizować. Jednak niepoprawny kod sprawia, że informacja może być źle zaindeksowana, co wpływa na pozycję strony w wyszukiwarce.

Wreszcie dla mnie poprawność kodu to ważny element rzemiosła, jakim jest tworzenie stron internetowych. Programista tworzący wadliwy kod jest jak pisarz piszący z błędami ortograficznymi. Na dodatek ten rodzaj błędów najłatwiej jest wykryć w sposób obiektywny, co naraża programistę na zażenowanie. Dlatego warto dbać o poprawność językową HTML czy XML.

2 myśli na temat “Poprawność techniczna (WCAG 2.0 SC 4.1.1, poziom A)

  1. „Jeżeli kod jest generowany w locie przez JavaScript, to nawet jeżeli jest poprawny, to nie da się analizować. ” – według mnie to jest informacja wprowadzająca w błąd większość developerów. Przede wszystkim zapomina się jak działają dzisiejsze roboty sieciowe i przeglądarki internetowe. Przede wszystkim dokonują parsowania kodu i zamieniają to w strukturę DOM Tree która potem jest użyta do renderingu. Roboty sieciowe mogą wygenerować zrzut strony internetowej czy symulować zachowania zdarzeń onload czy onmouse. Przykładem jest to że Google potrafi zrobić rendering strony i wyświetlić miniaturę. Dostępność strony internetowej dziś to nie tylko wiedza o tym czy kod strony jest dobrze sparsowany (kody znaczników HTML wg mnie mają co raz mniejsze znaczenie w budowie dostępnej strony WWW a coraz bardziej liczy się aktualna struktura DOM Tree danej strony internetowej. Kod strony internetowej generowany w locie przez kod JavaScript da się analizować z punktu widzenia takich narzędzi jak DOM Inspector co pozwoli w większości przypadków uchwycić aktualny kod strony internetowej. Natomiast w jakiej postaci struktura DOM Tree zostaje przekształcona w strukturę MSAA Tree i wtedy przekazaną do czytników ekranu. Problem w tym że niewielu programistów wie jak analizować strukturę MSAA Tree /UIA Screen Tree przy pomocy takich narzędzi z SDK Windows (Inspect32.exe czy UI Accesibility Checker)

    Podsumowując „poprawny” kod strony internetowej nie jest konieczny wobec wiedzy na temat jak działają przeglądarki internetowe wraz z obsługą JavaScriptu czy robotów sieciowych. Może istnieć strona internetowa nie spełniająca wymogów parsowania kodu HTML a być jak najbardziej dostępną

    Polubienie

  2. Myślę, że to jest odwrócenie pojęć i to niebezpieczne. Fakt że da się zrobić stronę dostępną lekceważąc semantykę wynikającą z zawartości dokumentu nie znaczy, że tak należy robić. Po drugie – zdaję sobie sprawę, że kod może być generowany przez JavaScript, co jednak wcale mnie nie cieszy./ Możliwość popełnienia błędów w ten sposób jest znacząco większa. Do tego jest to praktyka zła. Dodając do tego, że jednak nie wszystkie roboty sieciowe potrafią symulować wykonywanie skryptów, to nadal wymaganie poprawnego kodu jest słuszne. Osobiście uważam, że upychanie wszelkiego contentu i struktury w JavaScript jest błędną drogą i to zupełnie niepotrzeną. Szukanie błędów w tak skonstruowanym serwisie jest o wiele trudniejsze, niż w opartym o strukturę HTML. Reasumując – zdecydowanie lepiej jest robić poprawny kod, niż łatać jego braki protezami zrobionymi w językach skryptowych realizujących zadania w przeglądarce. Co bowiem w sytuacji, gdy ktoś ma starszą przeglądarkę lub wyłączoną obsługę skryptów? Treść i jej struktura powinna być zawarta w jezykach opisu dokumentów (HTML), formatowanie w arkuszach stylów, a dopiero reszta, czyli pewne operacje aktywne przez programy realizowane przez skrypty.

    Polubienie

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

Ta witryna wykorzystuje usługę Akismet aby zredukować ilość spamu. Dowiedz się w jaki sposób dane w twoich komentarzach są przetwarzane.