On Thu, Oct 14, 2004 at 01:11:35AM +0200, Tomasz Wegrzanowski wrote:
Nie mozemy pisac <foo> </foo> to piszemy <div class="foo"> </div> (ideowo znacza one to samo).
Ależ nie. Np. dla przeglądarki tekstowej, dla syntezatora dla niewidomych, dla wyszukiwarki (która nie ma kontaktu z autorem strony jak i nie rozumie ewentualnych wyjaśnień wypisanych na stronie) <div class="foo"> NIC NIE ZNACZY (dokładniej: tekst objęty tym znacznikiem nie wyróżnia się znaczeniowo od reszty tekstu).
W przeciwieństwie do <foo>, które można zgodnie z odpowiednim standardem W3C interpretować jako treść o specjalnym znaczeniu i zmienić zachowanie przeglądarki, wyszukiwarki czy innego narzędzia, którym "oglądasz" stronę. Np. syntezator może czytać kawałki kodu innym głosem, a Twój własny robot wyszukujący może np. automatycznie wyciągnąć wszystkie kawałki <code> z jakiejś grupy stron. Mając tekst otagowany wyłącznie divami i stylami CSS nie byłbyś w stanie tego zrobić (każdy autor inaczej przecież może nazwać styl, inaczej formatować tekst).
Te klasy sa wlasnie semantyczne, a znaczniki HTMLa trzymamy tylko dla kompatybilnosci ze starymi przegladarkami.
Po cóż w takim razie figurują w najnowszych standardach, typu XHTML, które są przecież dalekie od kompatybilności ze starymi przeglądarkami?
Jesli webmaster uzyl <div class="foo"> to prawie na pewno foo jest informacja semantyczna, jesli uzyl <b> czy <h1>, prawie na pewno jedynie ze wzgledu na wyglad.
<b> tak -- to jest tag o znaczeniu wyłącznie wizualnym. <strong> nie -- strong oznacza semantycznie tekst wyróżniony (a w jaki sposób będzie pokazany to już zależy od przeglądarki i CSS).
Zobacz na html generowany przez software Wikipedii - tresc artykulu (0 semantyki, czyste manipulacje layoutem) uzywa znacznikow html (i zeby bylo smieszniej glownie tych "semantycznych", jak <em> czy <strong> do kursywy i pogrubienia), za to interface (potagowany semantycznie) uzywa klas.
Bo <em> i <strong> SĄ semantyczne (a <i> i <b> nie). Z tagów strukturalnych, Wikipedia używa np. <h1 class=foo>, czyli mówimy że coś jest nagłówkiem i że mamy to sformatować według reguł zawartych w CSS przy klasie foo.
Czy naprawdę nie widzisz różnicy semantycznej między powyższym zapisem a np. <div class=foo>?
Wanted