Atrybut "rel" - mała rzecz a cieszy

Częściowo na kanwie ostatnich dyskusji na liście (to kolejny dowód na to, że warto się zapisać ;-) ), a częściowo swoich własnych wyszperań postanowiłem zwrócić uwagę na często ignorowany atrybut, który ma swoje pięć minut w dostępności. Mowa o tytułowym atrybucie rel nadawanym znacznikowi a lub link.

Przyznam szczerze, że jakiś czas temu utożsamiałem rel tylko i wyłącznie z link, co w moim mniemaniu rodziło potrzebę zagracenia sekcji head nadmiarowymi elementami. Ponieważ bilans tak postawionych nakładów do zysków wychodził na niekorzyść tych ostatnich ignorowałem rel. Do czasu.

Co to ogóle jest?

Zacznijmy od początku: rel to atrybut określający zależność między bieżącym dokumentem, a dokumentem-celem odnośnika, którego dotyczy. Ponieważ kilka zależności może występować jednocześnie - możliwe jest podanie kilku wartości atrybutu. Poszczególne wartości rozdzielamy spacją. Informacja o relacji jest dodatkowa i jej wykorzystanie oraz interpretacja przez przeglądarki, systemy wyszukiwawcze itd zależy od nich samych.

Nie mniej jednak należy pamiętać, że wykorzystanie atrybutu może ułatwić niektórym grupom użytkowników korzystanie z serwisu, a to podpada pod priorytet trzeci WCAG 1.0.

Podstawowe relacje które można określić są opisane w specyfikacji języka HTML. Zestaw wartości nie jest zamknięty stąd np. często spotykane, a nie ujęte wspomnianą specyfikacją rel="nofollow" autorstwa Google.

Komu to potrzebne?

Niestety na chwile obecną ani Internet Explorer ani Firefox nie maja domyślnego wsparcia dla atrybutu rel. Dla Firefoxa dostępna jest jak można się domyśleć odpowiednia wtyczka rozszerzająca. Co wydaje się o tyle dziwne w przypadku tego drugiego, że zarówno Netscape 6 jak i Mozilla zawierały sobie opcje korzystania z tych atrybutów.

Opera, trzecia w kolejce, której programiści, na mój ogląd, mają największe baczenie na sprawy dostępności, obsługuje dodatkowe menu oparte o atrybuty. Również przeglądarki tekstowe (np. Lynx, Linx) od dawna wspierają to rozwiązanie.

Niestety dobre wsparcie jak na razie jest tylko do wspomnianych we wstępie elementów <link> w sekcji head. Odnośników (<a>) oznaczonych np. jako prev, czy next przeglądarki nie wykazują w menu nawigacyjnym. Z drugiej strony trudno się dziwić, wszak przetwarzanie całego dokumentu w poszukiwaniu oznaczonych linków to zasobożerna operacja.

Ponieważ używanie atrybutu rel upowszechnia się (ot choćby poprzez obecność w niektórych szablonach WordPressa, czy innych systemach łebdwazerowych), a jego stosowanie nie wymaga jakiejś szczególnej gimnastyki - śmiem wierzyć, że popularne oprogramowanie będzie coraz szerzej wykorzystywać potencjał tego atrybutu.

Dygresja: Nad dostosowaniem "swojego" szablonu WP jeszcze pracuję. Te i inne "zabawy w dostępność" z Wordpresem opiszę jak mi czas pozwoli.

Jak używać?

"Zgodnie z przeznaczeniem do oznaczenia odnośników w sposób semantyczny". Czyli przekładając na ludzki ;) w taki sposób dodawać, by jak najlepiej oddawało to znaczenie linków. Kilka najczęściej przeze mnie stosowanych:

  • prev i next - do oznaczenia następstwa treści. Na przykład przy podziale treści na kilka stron (w tym wyników wyszukiwania), przy prezentowaniu artykułów ułożonych liniowo (patrz linki powyżej tego artykułu) itd.
  • start - pierwsza strona przy podziale j.w., strona główna kategorii produktów. To również może być informacja wartościująca link dla niektórych wyszukiwarek
  • bookmark - oznaczenie linku do danej strony, czy wręcz wybranego fragmentu. Bardzo przydatne podczas dodawania do ulubionych. Można przy jego pomocy oznaczyć kilka miejsc na jednej stronie. Podłapałem bakcyla na stronach blogów - muszę zacząć szerzej stosować w tworzonych serwisach.
  • index - mi semantycznie odpowiada najczęściej mapie strony, która jest swoistym indeksem zawartości
  • alternate - użyte wraz z atrybutem lang w linkach do zmiany wersji językowej, wraz z media - do wersji do wydruku.

W nawiązaniu do prev i next wywiązała się ostatnio polemika na liście dotycząca dozwolonej zdroworozsądkowo ilości każdego na stronie. Podstawą jest założenie, że prev i next służą do określania liniowości następstwa treści.

Mój punkt widzenia jest następujący: dwa lub więcej linki do różnej treści z tym samym atrybutem, przyjmując powyższe założenie, nie mają większego sensu. Jeśli jednak nawigacja jest powtórzona (np powyżej i poniżej listy wyników) albo w kontekście zdarzą się linki do tego samego dokumentu nawet z odmiennym tekstem to wówczas zastosowanie tej samej wartości do każdego z nich ma sens.

Natomiast np. rel="next" dla każdego "czytaj dalej" na liście aktualności zaburza ideę liniowości dlatego nie widzę sensu takiej nadgorliwości.

  • Podziel się:
  • wykop.pl
  • gwar.pl
  • linkr
  • del.icio.us
  • digg.com
  • technorati

4 komentarzy do artykułu “Atrybut "rel" - mała rzecz a cieszy”

  1. *@Tomek*: rel nie musi odnosić się do całego dokumentu, lecz np. do fragmentu treści, więc nie ma tu mowy o "zaburzeniu liniowości".

    Atrybut rel już od kilku lat regularnie zdobywa na popularności, bezpośrednie korzyści wynikające ze stosowania możemy odczuć już od ponad roku / dwóch lat, od kiedy coraz intensywniej zaczęły pojawiać się narzędzia wspierające *mikroformaty*.

    Mówiąc najogólniej, dzięki *rel=""* możemy przykładowo dwoma kliknięciami ściągnąć sobie przez Firefoksa kompletne kontakty do książki telefonicznej z oznaczeniami stron, subskrybować do kalendarza z zapisanymi adresami, ściągnąć listę znajomych wraz z ich hierarchią i relacjami czy subskrybować jakąkolwiek treść, która nie ma żadnego generowanego feeda (kanału). Możliwości są nieograniczone.

    Wiele narzędzi zaczyna wspierać także np. rel="enclosure" dzięki któremu agregator automatycznie może pobrać załączniki w dowolnym formacie / dokumencie.

    Nie mógłbyś także zapomnieć o XFN na którym opiera się współczesny blogging.

    Domyślne wsparcie pojawić ma się w FX 3 i w IE 8, a już teraz można korzystać ze zbioru popularnych pluginów, skryptozakładek, narzędzi etc.

    Wszystkie te możliwości mają b. duży wpływ na dostępność, bo pozwalają na prosty sposób dostarczenia przyjaznej dla człowieka treści w otwartym formacie zamiast zbioru tagów i dziwnych oznaczeń zrozumiałych tylko dla komputera i przeglądarki.

  2. Dzięki za przypomnienie o XFN (sam używam a jak trzeba napisać to wyleci z głowy ;-) ). Będę musiał naskrobać osobny artykuł o mikroformatach. Dobrze, że ten długo nieużywany atrybut, który może stanowić naprawdę mocną pomoc w określaniu kontekstu powiązań i wspomóc nawigację na stronach dzięki takim wykorzystaniom przebija się coraz mocniej.

    Jaka będzie przyszłość? Zobaczymy. Warto jednak zainwestować nieco czasu w nawyk korzystania z rel

    Co do liniowości, to w przypadku prev i next mam opory przed ich wielokrotnym użyciem z różnym elementem docelowym, bo jak oznaczyć zakres odnoszenia się? Wolę ograniczyć ich stosowanie niż wprowadzić użytkownika w błąd. Nie twierdzę, żem nieomylny, może za jakiś czas przekonam się na tyle by stanąć po drugiej stronie barykady?

  3. Szy. mówi:

    ... a rel="tag" jest wykorzystywane chociażby przez Technorati do rozpoznawania odnośników prowadzących do listingu danego taga.

    Nie jest to dokładnie ta dostępność o której piszesz, ale warto chyba wspomnieć? :]

  4. [...] Atrybut “rel” - mała rzecz a cieszy [...]

Skomentuj


O ile nie jest to stwierdzone inaczej, wszystkie materiały na stronie są dostępne na licencji Creative Commons Uznanie autorstwa 2.5 Polska.