Perfection or Vanity

Project: Terminated

Blog nie jest już dalej prowadzony ani aktualizowany. Mimo tego, wpisy i komentarze są dalej dostępne. Możesz przeczytać pożegnalny wpis albo przejść do archiwum.

Accesskey - małe, a cieszy

04 listopada 2005

Znajomy się mnie ostatnio spytał o ten magiczny wyraz, także po opublikowaniu tego designu bloga parę osób było trochę zaskoczonych. Wydaje się, że spora część Internetu jakoś nie dostrzega, po pierwsze ułatwień i zwiększenia dostępności dla niepełnosprawnych, po drugie zwiększenia prostoty i możliwości obsługi strony przez gości.

Oczywiście warto przypomnieć, że accesskey nie jest tagiem, tylko atrybutem. Może być aplikowany dla linków <a/> i map obrazków <area/>. Przykładowe użycie:

  1. <a href="strona.html" accesskey="1">Strona</a>

Skróty klawiaturowe najlepiej definiować dla cyfr, najmniej one popsują szyki, gdy ktoś jest przyzwyczajony używać któregoś skrótu do opcji w samej przeglądarce. W systemie Windows naciśnij Alt + klawisz dostępu; dla komputerów Macintosh możesz nacisnąć Ctrl + klawisz dostępu. W niektórych przeglądarkach (np. w Mozilli) wystarczy nacisnąć daną kombinację klawiszy w innych (np. Internet Explorer) wymagane jest jeszcze naciśnięcie klawisza Enter. Zdarzają się także przypadki bardziej skomplikowane - np. w przeglądarce Opera aktywacja skrótu następuje przez naciśnięcie Shift + Esc i dopiero potem odpowiedniego klawisza dostępu. Samo wsparcie dla atrybutu jest w Internet Explorerze od 4.0 w górę i Netscape 6.0 w górę, nie licząc nowoczesnych przeglądarek.

Można się też (i co jest coraz częściej wykorzystywane) odwoływać do elementów formularza. Dla <input/> i <textarea/> można się odwołać od razu przez wstawienie atrybutu, bądź też skorzystanie z <label/>. Etykietka jest potrzebna, jeśli chcemy odwołać się do <select/>, wstawienie go do znacznika listy wyboru popsuje poprawność kodu. Na chwilę obecną nie ma wsparcia dla <option/>, a szkoda. :) Dla elementów <button/> i <input type="submit"/> (albo reset) wywołanie klawiszem spowoduje ich wciśnięcie. Dla radiobutton, checkbox zaznaczanie.

Z powodu niewidoczności tego parametru, powinno się zaznaczyć w jakiś sposób, że zdefiniowaliśmy skróty klawiaturowe na swojej stronie. W Operze 8.5 nie dopatrzyłem się przyjaznego rozwiązania (pomimo, że taka jest prodostępnościowa), ale nie wykluczam pomyłki, nie jestem związany z tą przeglądarką. Mozilla i Firefox potrafią jedynie wskazać we właściwościach strony tabelkę.

Firefox - Page Info

Jednak warto odrobić pracę domową za przeglądarki, bo nie każda ma taką fajną opcję jak Konqueror. Najczęściej stosuje się stylowanie - znacznik prezentacyjny, jak <b/>, bądź zaakcentowanie <em/> - zwykle jako podkreślenie, nawiązując do wyglądu kontrolek systemowych. Można też podać w etykietce tekstowej dodatkową informację, bądź skorzystać z generowania treści przez CSS. Jeśli wiemy, że agent użytkownika ma wsparcie dla JavaScript, możemy dodać kod który wylistuje w jakimś pływającym panelu wszystkie elementy z atrybutem accesskey. Bardzo oryginalnie wygląda z połączniem accesskey'a flaga dla linków :focus - można symulować stuknięcie w wirtualny przycisk interfejsu.

Wszystkie te pomysły przygotowałem na mojej stronie testowej accesskeys, zapraszam. :)

Accessbar dla Greasemonkey

Przykładowy kod do panelu ze skrótami można też uruchomić przez Greasemonkey, tak ostatnio przeze mnie wychwalany. ;)

Informacje i hiperłącza

Blog o projektowaniu zgodnych ze standardami stron internetowych.

Praktyczne przykłady, sztuczki CSS, sposoby obchodzenia błędów przeglądarek, lekki i nieinwazyjny JavaScript, użyteczny design, dostępność i skrypty użytkownika.

RSS

Informacje o wpisie

Napisał riddle 04 listopada 2005 o 23:11

Kategorie: Dostępność

Dodaj do:

Wpisy archiwalne

Archiwum miesięczne

Dzięki!

Dodaj bloga do Technorati Favorites Dodaj bloga do Del.icio.us Blog należy do sieci 10przykazań.com

  1. Znajomy dziękuje bo wpis ten mu pomógł zrozumieć wyżej opisany problem :)

  2. taak, ja jestem ci wdzięczny jak diabli, od kiedy tylko zauważyłem to w twoim szablonie
    dzięki temu zaoszczędziłem sobie babrania z JS w mojej grze
    Heil Riddle!

  3. Przykład "Generowanie treści za pomocą CSS" jest bardzo ciekawy, ale zupełnie bez sensu dla osób, które nie korzystają z myszy :)

    OT: Czymu Yin Yang jest przekręcony. Chyba powinien wyglądać tak: http://pl.wikipedia.org/wiki/Yin_i_yang :)

  4. Fakt, dodać można jeszcze regułę po przecinku a:focus::after :)
    Faktycznie, Yin i Yang wygląda inaczej. No ale zasugerowałem się 1szym wynikiem: http://images.google.com/images?q=yin%20yang

  5. A ja jestem bardzo wdzięczny za linki z accesskey w postaci cyfry. Można uruchomić link i zmienić zakładkę jednocześnie! (Już nie będę złośliwy :D)

  6. Patrys: http://perfectionorvanity.com/comment.php?eid=132243#comm9 ;)

  7. "Skróty klawiaturowe najlepiej definiować dla cyfr, najmniej one popsują szyki, gdy ktoś jest przyzwyczajony używać któregoś skrótu do opcji w samej przeglądarce."

    Problem z accesskey pojawia się gdy ktoś używa przeglądarek, które z definicji same numerują linki, gardzą myszą czyli posiadają bogatą klawiszologię. Jak np. Conkeror.

  8. Problem z accesskeys polega na tym, że nikt ich nie używa i nie spodziewa się nigdzie zastać. Dodatkowo dla każdego niemal klawisza można znaleźć powodującą konflikt przeglądarkę / funkcję systemu / whatever.

  9. Problem z accesskeys polega na tym, że (copy-paste) implementacja w przeglądarkach jest lekko beznadziejna. Wyjątkiem jest wpomniany przez Riddle Konqueror, który ma wprost genialne rozwiązanie tego problemu: żadnych kolizji skrótów, żadnego zgadywania jaki to skrót jest przy linku - wystarczy wcisnąć Ctrl :)

  10. Żart: jak donoszą nieoficjalne źródła, przez miasto przetaczają się tłumy niewidomych, którzy masowo nabywają pisane Braille'em instrukcje instalacji KDE...

  11. Na początku mi się nie chciało komentować :)

    Ale powiem, że fajnie, żeś to napisał, to ja zaimplementuję Accesskey w powstającej następnej wersji strony domowej (Home v9) :)

  12. Ja używam <kbd/> do oznaczania accesskeyów. Nie wiem czy dobrze to czy źle... ;-)

    Ostatnio robię coś na bazy danych. Tam właśnie accesskey spisuje się wspaniale.

  13. Problemy z opcjami przegladarek/systemow/etc to wina tylko i wylacznie osob tworzacych to oprogramowanie. Ja stosuje acceskey'e. Komus nie dziala, albo zle dziala? Coz, to juz jego problem.

  14. jutro sobie wrzuce acceskey na bloga... :D dzieki riddle

  15. Bellois:

    Jasne, równie dobrze można ustawić background: #fff; color: #fff; dla body, a resztę oprzeć o CSS2.1. Pod IE wyjedzie biała strona, ale to w końcu problem tych, którym nie działa. Bo "niedziałanie" accesskeys często objawia się tak, że to one mają pierwszeństwo przed oczekiwanymi funkcjami. Jeśli chcesz iść na całość, to zamapuj całą klawiaturę od razu. Accesskeys mają pomagać, a nie przeszkadzać, więc w twoim interesie (pośrednio) jest sprawić, by nie tworzyły kolizji,

  16. z tym pod IE to nawet ciekawy pomysł :>

  17. "W Operze 8.5 nie dopatrzyłem się przyjaznego rozwiązania (pomimo, że taka jest prodostępnościowa), ale nie wykluczam pomyłki, nie jestem związany z tą przeglądarką". No i się pomyliłeś. Wystarczy przełączyć styl w Operze na "Dostępność" i obok linków w czerwonych nawiasach mamy accesskey.

  18. mcv: <kbd> - ma zastosowanie wtedy, kiedy chcemy wskazać, że od użytkownika oczekuje się wprowadzenia danych (w domyśle: przy użyciu klawiatury). Jest jaknajbardziej semantycznym znacznikiem dla akcji, którą ma opisywać.

  19. Rozwiązanie z Konquerora jest proste i niesamowite zarazem. Może kiedyś Opera czy Firefox skopiują to rozwiązanie...

Dodaj komentarz

Do formatowania komentarzy używaj Textile (HTML nie działa). Szczególnie jeśli wklejasz większe fragmenty kodu. W razie niepewności użyj podglądu komentarza.

Wypowiedzi obraźliwe, infantylne oraz nie na temat będą moderowane – pisząc postaraj się zwiększyć wartość dyskusji.

Komentarze nie służą do wysyłania wiadomości albo informowania o błędach, itd. Chcesz coś mi napisać – skontaktuj się.