Pora na kolejną stronę agencji interaktywnej do kolekcji! Tym razem ICHERRY.pl.
- Strona wygląda schludnie i elegancko, w tym względzie nie mam nic do zarzucenia.
- Co ciekawe, strona wygląda praktycznie identycznie z działającym JS-em, jak i bez niego – brakuje wyłącznie przykładowych prac zaciąganych z Dribble. To spory plus. Pokazuje też, że można w dzisiejszych czasach zrobić funkcjonalną stronę bez potrzeby uciekania się do miliarda skryptów.
- Niestety, na stronie jest bardzo utrudniona nawigacja klawiaturą, ponieważ focus nie jest widoczny.
- Pewne elementy na stronie (różowy przycisk z białym tekstem oraz copyright w stopce) mają za mały kontrast. W połączeniu z małym fontem tworzy to tekst dość trudny do przeczytania.
- Linki do e-maila (występujące w kilku różnych miejscach strony) najwidoczniej były zabezpieczone przed spambotami. Zabezpieczenie jest tak dobre, że nawet Chrome sobie z nim nie radzi.
- Przejdźmy do kodu. Walidator nawet nie bardzo narzeka. Nie dość, że błędów de facto nie ma (nie licząc zabezpieczenia e-maila), to dodatkowo hierarchia nagłówków wygląda na bardzo dobrą – a to wciąż rzadkość.
- W kodzie widać pewną niekonsekwencję: część atrybutów jest otoczona apostrofami, część nie, część znaczników ma zamykającego slasha, część nie. Dodatkowo arkusz stylów z Google Fonts ma niepotrzebny atrybut
[type]
, podczas gdy główny arkusz strony – już nie. - Strona dba także o przeglądających korzystających z naprawdę starych przeglądarek. Szkoda tylko, że HTML5 Shiv jest zaciągany z już nieistniejącego adresu.
-
Mimo że wygląd jest faktycznie minimalistyczny, to kod już na pierwszy rzut oka wydaje się przekombinowany, np. nagłówek wygląda tak:
<header class="main-header"> <div class="wrapper"> <div class="top"> <div class="logo"> <div class="cl"> <a href="http://icherry.pl"> <img src="assets/logo.svg" alt="ICHERRY - Projektowanie Stron www - WordPress"> </a> </div> <div class="cl"> <h1>ICHERRY</h1> <p>projektowanie stron www</p> </div> </div>
Część z powyższych elementów (np.
.top
czy.cl
) nie ma nawet przypisanych stylów, co sprawia, że te elementy stają się całkowicie bezsensowne. Samą strukturę można jeszcze bardziej uprościć poprzez choćby przeniesienie stylów z.wrapper
bezpośrednio do.main-header
.Innym problemem tego kodu jest fakt, że nazwa strony jest duplikowana, co może sprawiać problemy choćby czytnikom ekranowym. W tym wypadku – jeśli chcemy zatrzymać napis
ICHERRY
– proponowałbym z logo zrobić nagłówek strony, a redundantny w tym momencie napis stałby się po prostu podpisem obrazka:<h1> <a href="http://icherry.pl"> <img src="assets/logo.svg" alt=""> <span>ICHERRY</span> </a> </h1>
Natomiast, jeśli już koniecznie nie chcemy, by ten napis był linkowany, zastanowiłbym się nad:
<h1> <a href="http://icherry.pl"> <img src="assets/logo.svg" alt="ICHERRY"> </a> </h1> <p aria-hidden="true">ICHERRY</p>
Oczywiście reszta tekstu z
[alt]
została usunięta z powodu duplikacji w akapicie znajdującym się tuż pod nagłówkiem. - Brakuje znacznika
main
, który by otaczał główną część strony. - Style CSS strony są trudne w utrzymaniu z powodu niepłaskiej specyficzności. Selektory typu
.main-header .intro p
(łączone dodatkowo z osobnymi regułami dla.mb
!) są poważnym antywzorcem. - Sekcja Oferta może być dodatkowo podzielona na podsekcje. Występują w niej bowiem zagnieżdżone nagłówki
h3
. -
<div class="col-3"> <img src="assets/design_icon.svg" alt="Projekty stron www" class="icon"> <h3 class="title">Projektowanie</h3> <ul class="list"> <li>Projekty stron internetowych</li> <li>UI/UX design</li> </ul> </div>
Przy tego typu konstrukcji ikonka tak naprawdę stanowi ozdobnik. Jej sens i treść przekazuje znajdujący się tuż obok nagłówek. Zatem
[alt]
powinien być pusty.Na tej stronie odnoszę wrażenie, że
[alt]
mają służyć jako wspomagacz w pozycjonowaniu, co jest dość sporym nadużyciem.[alt]
służą przede wszystkim dostępności. - Przy okazji stopki zastanowiłbym się, czy
strong
nadaje się na informacje prawne. Teoretycznie o wiele bardziej pasuje tutajsmall
. -
Skrypt pobierający obrazki z Dribbble generuje kod HTML w taki sposób:
shots.forEach(function(shot) { html.push('<li class="shots--shot">'); html.push('<a href="' + shot.html_url + '" target="_blank">'); html.push('<img src="' + shot.images.normal + '">'); html.push('</a></li>'); });
Tego typu kod sprawia, że generowane obrazki nie mają
[alt]
. To powoduje, że np. użytkownicy czytników ekranowych nie będą wiedzieli, dokąd linki prowadzą. To bardzo spory błąd dostępności. -
Kod zabezpieczający maile posiada jedną wadę, która sprawia, że nie działa on w Chrome: nie odróżnia własności od atrybutu.
<a href="mailto:office{e1#42A}icherry(dot)pl">Kontakt</a> <script> const a = document.querySelector( 'a[href^=mailto]' ); console.log( a.getAttribute( 'href' ) ); // mailto:office{e1#42A}icherry(dot)pl console.log( a.href ); // mailto:office%7Be1#42A%7Dicherry(dot)pl </script>
Atrybut to to, co wstawiamy do kodu HTML. Natomiast własność to to, co powstaje po przemieleniu atrybutu przez przeglądarkę. Atrybut jest częścią kodu HTML, natomiast własność – częścią DOM. Stąd też przemielony atrybut
[href]
to poprawny link, zatem przepuszczony przezencodeURIComponent
.
Nie jest źle! W porównaniu do innych stron na WK, ICHERRY.pl jest estetyczne, a jej kod przynajmniej próbuje być semantyczny. Choć sporo można by poprawić (np. błąd dostępności przy miniaturkach z Dribbble czy średnio utrzymywalny CSS).
„Nie jest źle!” zawarte w Twojej opinii to normalnie chyba 6+ albo i lepiej 🙂 A tak na serio to fajnie, że chce Ci się i robisz takie analizy. Wiele można się z nich nauczyć i często przypomnieć sobie rzeczy, o których się wie, ale w ferworze prac i pośpiechu po prostu zapomina… A tak na marginesie to chyba odwróciły Ci się kolory w kodzie „Skrypt pobierający obrazki z Dribble generuje kod HTML w taki sposób:” bo jest białe tło i czcionka bez wypełnienia z białymi konturami…
Hmm, u mnie działa.
@Comandeer – tu masz screen o ktorym mowi @Tomek 🙂 http://imgie.pl/image/woPVA
OK, teraz powinno być dobrze.
Dribbble* 🙂 przez 3xb nie 2 🙂
Faktycznie. Poprawione!
czy mówisz o tej wersji która jest teraz czy była lat temu 2 ? fajnie chyba było by dodać screena albo podgląd krytykowanej strony z danego okresu.
Skoro artykuł jest z tamtego roku, to raczej trudno, by opisywał obecną wersję strony (chociaż na oko się nie zmieniła). Każda recenzowana strona ma swój screenshot: https://www.webkrytyk.pl/repozytorium/icherry.pl/30-11-2017/