Ciemna strona webdesignu - podium zwycięzców
24 czerwca 2006
Są takie techniki pisania stron, które poważnie nadwyrężają moje zdrowie psychiczne. Wynikają… nie wiem z czego, chyba ze zbyt pobieżnego przyjrzenia się podręcznikowi HTML / CSS. Dlatego postanowiłem zaprezentować te najmocniej następujące mi na odcisk. Nie są ogromnymi problemami natury logistyczno-programistycznej - są za to wielkimi wykroczeniami w stronę użyteczności i intuicyjności używania WWW.
1. input:hover & input:focus
Na pierwszy ogień idzie korzystanie z pseudoklas :hover oraz :focus dla pól formularzy. Pierwsza oczywiście określa czy kursor myszy znajduje się nad polem, druga natomiast czy w polu jest fokus / kursor.
Panuje irytująca maniera - określmy odmienny wygląd pola dla :hover, ale nie ruszajmy :focus. Na stronie testowej widać jak nieprzemyślane jest to rozwiązanie. Otóż jeśli używamy pola tekstowego, to najczęściej nie chcemy aby kursor myszy przesłaniał nam to co wpisujemy (zwłaszcza, jeśli nie jest to domyślny jednopikselowy wypłosz) i zabieramy go z pola. Efekt znika - pole zmienia wygląd na domyślny. Nie ma to sensu, a czasem zaburza czytelność - zaznaczaj wybór pola przez :hover i :focus, nigdy przez sam :hover. Lepiej?
IE6/win nie zrozumie tych selektorów - wszystko gra. IE7 rozumie :hover, nie rozumie :focus - usuń :hover komentarzami warunkowymi. IE5/mac rozumie :focus, nie rozumie :hover - jest okej.
2. Np.: div:hover
Dalej mamy jeszcze jeden przykład związany z :hover. Stosując go dla elementów blokowych w celu zaznaczenia / zwiększenia czytelności tekstu określamy pole aktywne na 100% dostępnej przestrzeni. Widać, prawda? Nie mam ochoty na świecenie się czegoś na drugim krańcu ekranu, jeśli wzrok i myszkę mam tutaj. Mistrzem podstępu był swego czasu wordpressowy szablon Hemingway - podświetlanie pola wyszukiwania, nie dość że było zrobione metodą z punktu pierwszego (nadal jest), to elementem aktywnym był div wypozycjonowany i rozciągnięty na całą szerokość nagłówka. Chcesz użyć :hover dla takich szczegółów na stronie? Ok, ale zrób to dobrze.
3. label & np.: input type="checkbox"
Jest to wielka bolączka stron - brak klikalnych etykiet pól jedno/wielo-krotnego wyboru. Twórcy stron po prostu zapomnieli znaczników HTML-a. Co więcej - „nowoczesne” strony też wydają się nie wiedzieć o co c'mon. Tak zwane polskie Web2.0 w tym przoduje: Trendomierz, Spinacz, Gwar (także Wykop, ałć1). Autorzy serwisów i wszyscy, którzy jeszcze tego nie wiecie - element <label for=""></label> powoduje przypisanie objętego nim tekstu do pola formularza. W for wpisać należy id pola (i trzeba to robić zawsze, ze względu na IE6). Używając tego prostego znacznika zwiększamy pole gdzie użytkownik może kliknąć - nie jest już ograniczony do tego kwadracika 10 na 10px.
Jeśli używasz label, podkreśl możliwość kliknięcia w tekst - ustaw kursor „łapki” nad nim.
label { cursor: pointer; }
W ten sposób mocno zaznaczysz, że element można kliknąć → zainteresujesz użytkownika → nauczysz go, że w sieci też można klikać w etykietę → spowodujesz, że kodząc stronę zrobi tak samo. Plusy widać jak na dłoni, dlatego nie chcę kłocić się czy łapka powinna być zarezerwowana dla linków - dla mnie użyteczność jest ważniejsza. Masz stronę z choćby jednym polem checkbox / radiobutton i nie używasz label? W tej chwili leć to poprawić, nie żartuję.
Jeszcze tu jesteś? :)
- 1)
fordziała zid, niename


