Skip to content

Instantly share code, notes, and snippets.

@marek-saji
Last active August 29, 2015 14:13
Show Gist options
  • Save marek-saji/065ba9f2d01b2ebf2570 to your computer and use it in GitHub Desktop.
Save marek-saji/065ba9f2d01b2ebf2570 to your computer and use it in GitHub Desktop.
Progressive Enhancement

Progressive Enhancement

Wiele osób myśli, że chodzi tu tylko o to, żeby strona działania temu 0.5% ludzi, którzy wyłączyli sobie JS. Tymczasem chodzi o odwrócenie myślenia — ustanowienie najniżej poprzeczki, jak to możliwe dla „core experience” i traktowanie wszystkiego innego jako dodateku. Tak więc:

  • <picture>? Bonus. Większość przeglarek nie zrozumie co to.

  • <img srcset>? Bonus. Podstawą jest atrybut src z obrazkiem w niskiej rozdzielczości

  • <img>? Bonus. Dlatego używamy atrybutu alt dla obrazków, które nie są czysto prezentacyjne

  • Szeroki ekran? Bonus. Podstawą jest zadbanie o single–column layout, bo jest prostszy i bezpieczniejszy do serwowania starszym przeglądarkom (nie tylko stare IE, ale też stare komórki)

  • Czcionka? Bonus. Nie można zakładać, że/aż czcionka z @font-face się załaduje.

  • CSS? Bonus. Jak bym był na komórce, to mogło by się zerwać połączenie or sth, style mogły by się nie załadować do końca

  • Wyświetlanie tekstu? Bonus. Ktoś może używać screen readera. Swoją drogą nie zdziwił bym się, gdyby niedługo pojawił się jakiś sposób przeglądania stron na smartwachach, czy google goglach, który będzie działał w jakiś podobny sposób.

  • JavaScript? Bonus. JS ładujemy na końcu, żeby nie blokował wyświetlania treści (która jest najważniejsza). Dlatego też nie możemy polegać na tym, że zanim użytkownik zacznie interagować ze stroną JS już się wykona. Z tego powodu rzeczy w stylu <a href=#> są bez sensu. Linki, które jedynie odpalają JS są dopuszczalne, ale powinny być wstawiane przez JS z od razu podpiętymi eventami. Aczkolwiek częściej, niż nie można zapewnić akcję, która zadziała po bożemu jak zwykły link. Np. kliknięcie „Edytuj” może rozwinąć fragment strony pokazując formularz edycji, a bez JS otwierać osobną stronę, na której jest ten sam formularz. Nie wymaga to dużo pracy, bo po stronie serwera akcja może być obsługiwana przez ten sam kod.

  • Konkretne ficzery w JS, czy CSS? Bonus requestAnimationFrame, geolocation, transition, transform, …

  • Idealnie wszystko poza czystym tekstem i linkami jest jedynie bonusem.


  • Robienie stron w ten sposób, kiedy to treść jest podstawą, a wszystko inne dodatkiem procentuje też przy pojawianiu się nowych przeglądarek, rozwiązań etc Powiązane: http://futurefriendlyweb.com/

  • Do niektórych rzeczy można dawać polyfille, ale zawsze trzeba się zastanowić, czy warto.

  • W większości przypadków wprowadzenie PE w życie wcale nie jest takie czasochłonne — trzeba się tylko przestawić na inne myślenie.

  • W dużej mierze jest to zbieżne z RWD — tam też nie chodzi tylko o reagowanie na zmiany rozmiaru ekranu, ale ogólnie na możliwości urządzenia, na którym strona jest oglądana.

  • Na A List Apart jest wprowadzenie do PE. Szczerze, to nie pamiętam już co dokładnie tam było, ale zakładam, że skoro tam jest, to jest rozsądne. {; http://alistapart.com/article/understandingprogressiveenhancement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment