Mój „schiz” – semantyka – IMHO
Któregoś razu trafiłem na blog Riddle’a. Koleś porusza nawet niezłe tematy dotyczące projektowania www, są to głównie takie, które poruszają ich budowę, to, co jest pod maską. Parę miesięcy temu liznąłem trochę XHTML-a i CSS-a + semantyczny JS. I skupię się w tym miejscu na przymiotniku, który postawiłem przy akronimie JS. Nie dotyczy on bynajmniej wyłącznie JavaScriptu. Do rzeczy: większość stron, na które można natknąć się w internecie jest napisana „aby było”. Gdy któraś ze stron przykłuje moją uwagę wyglądem, bądź działaniem: CTRL+F3 (czyli „pokaż źródło” w Operze) i patrzę, co jest pod maską. Jakże często się rozczarowywuję, gdy widzę śmietnik wciśnięty w tabelki.
Jednak nie skupię się tu na tabelkach, bo to jest temat na całą serię artykułów. Wracając, często można się natknąć na konstrukcje typu onclick, onmouseover czy style. Są to rozwiązania nieekonomiczne. Dlaczego?
- wprowadzanie zmian w layoucie strony: Nie będę się o tym rozpisywał, bo Riddle już to zrobił,
- wydajność przy otwieraniu stron: plik ze skryptem/stylami przeglądarka pobiera tylko raz, co owocuje znacznym zmniejszeniem dokumentu wynikowego (XHTML) i zmniejszeniem zużycia limitów transferowych (bo, jak już wcześniej wspomniałem, pliki JS/CSS zostały pobrane i siedzą sobie w cache’u),
- idea semantyki: panuje ład i porządek; wszystko jest na swoim miejscu
Ze wspomnianym wcześniej wpisem Riddle’a zgodzę się w 90%. A gdzie podziało się 10%? Właśnie… Riddle napisał:
Umieszczając link wraz z atrybutem onclick robimy tak samo źle, jak umieszczając style liniowe poprzez style=””. Jeśli uważasz, że można zrobić w niektórych miejscach wyjątek i określić prezentację w strukturze dokumentu, możliwe że dojdziesz do tych samych wniosków jeśli chodzi o JavaScript. Czasem wszakże potrzebujemy jeden mały onclick w jakimś zapomnianym miejscu strony. Moim zdaniem jednak warto podejść do zagadnienia nowocześnie i odrzucić on… raz na zawsze.
Owszem, z opinią na temat liniowego osadzania skryptów JS się zgodzę, to ze stylami już nie za bardzo. Dlaczego? Mamy – powiedzmy – tabelki, ale z danymi, które powinny się w niej znaleźć (np. omówienie jakichś statystyk, itp.). Jeśli tych statystyk jest masę i to w różnych układach, to arkusz stylów niepotrzebnie będzie puchnąć. Oczywiście mam tu na uwadzę rozmiary względne – tu są to procenty. Bardzo prosty przykład: szerokość kolumn we wspomnianych przeze mnie tabelkach. Przecież niezależnie od szerokości ekranu przeskalują się one bez problemu. Takie same proporcje zostaną zachowane na monitorze komputera, projektorze czy ekranie telefonu komórkowego. Owszem, można wszystko wcisnąć do arkusza, gdy jest kilka tabel, ale co zrobić, gdy ich ilość urośnie do kilkudziesięciu? Jak to mawiają: wszystko jest dla ludzi, ale z umiarem, więc nie przesadzajmy… W tym wypadku trzeba się pokierować rozumem. Nie bądźmy pedantyczni jak Anglicy – ktoś kiedyś napisał na blogu poświęconym kwestiom projektowania stron.
A moim skromnym zdaniem podejście semantyczne wskazywałoby na użycie <table> i opisanie jej przy użyciu wszelkich legalnych atrybutów. Jak sam napisałeś, wszystko jest dla ludzi