Empatia.mpips.gov.pl

O niektórych rzeczach trudno nie usłyszeć, gdy trąbią o tym media. I choć magiczna liczba 49 milionów złotych być może jest przesadzona, to i tak kwoty robią wrażenie.

A gdzie jakaś strona robi wrażenie, tam muszę być pierwszy, żeby na własnej skórze przekonać się czy naprawdę jest czym się zachwycać (tudzież błotem obrzucać). Nie inaczej może być z Emp@tią.

  • Źle jest, gdy większość strony głównej przy tego typu projektach zajmują wyjaśnienia wątpliwości natury etyczno-prawnej, z których dowiadujemy się, że informacje prasowe są fałszywe i wpływają negatywnie na wydźwięk całej inwestycji.
  • Emp@tia. Portal informacyjno-usługowy – jak dla mnie brzmi to trochę… sztucznie.
  • Zostawmy na boku spory ideowo-polityczne i skupmy się na samej stronie. Oczywiście wita nas komunikat o cookies. Ale nie przewija się wraz ze stroną i zajmuje potrzebne minimum miejsca. To duży plus!
  • Przyciski służące do powiększania treści są niedostępne z klawiatury, zatem są po prostu nieużyteczne. No i to wskazuje na jeszcze większą ich wadę: nie są przyciskami. Dokładnie taki sam los spotkał link do wersji kontrastowej. Przepraszam, to nie link a jakaś kulawa atrapa.
  • A tuż poniżej link tylko dla AT (jedynie pojawiający się przy focusie) z tekstem „Przejdź do komentarzy”. No cóż – elementy bardziej istotne z punktu widzenia dostępności są niedostępne i nieużyteczne, ale link do komentarzy już tak. Pomijając kwestię, że tu nie ma komentarzy a link po prostu odsyła do głównej treści. A ta mogłaby być spokojnie po prostu oznaczona odpowiednimi znacznikami i AT samo by sobie ją wyciągnęło. Widać, że webmaster wie co nieco o dostępności, ale źle rozkłada akcenty.
  • Pierwszy raz widzę coś takiego na stronie – menu jest niefocusowalne. To chyba jak dotąd najgorszy błąd dostępności, na jaki natrafiłem oceniając strony. Czemu menu jest wyłączone z obiegu i to w pełni świadomie? To jest po prostu… niepojęte. Dla pewności sprawdziłem dodatkowo w lisku (tak, korzystam z Chromium dev, a co!), bo nie chciało mi się wierzyć i miałem nadzieję, że to bug przeglądarki. Ale nie – menu jest chamsko wyłączone. Jaki to ma sens?
  • Pomijając już fakt, że :focus jest słabo widoczny i nie wiem co „klikam”. W lisku jest lepiej z powodu innych stylów domyślnych. Zatem dobra rada dla webmastera: stosować normalizację stylów. Druga dobra rada: style dla :hover bardzo dobrze pasują także dla :focus.
  • Ta strona była do tej pory odwiedzona 77898 razy.

    Zaiste, najważniejszy element strony rządowej.

  • Pokorzystam sobie z powiększania czcionki. Otóż można ją powiększyć aż o 2 stopnie. Mało. Inna rzecz – przycisk powiększania czcionki jest najmniejszy na stronie. Ironia?
  • A wersja kontrastowa? Niby jest ok (wali po oczach ;)).
  • Jak wygląda link do głównej? Tak. Bo napisanie / jest zbyt proste.
  • Breadcrumbs – czy przypadkiem „Strona główna” nie powinna być po prostu 1. przyciskiem?
  • Strona nie wygląda na responsywną.
  • Tyle na 1. rzut oka. Przejdźmy do kwestii technicznych. Walidator nie jest zachwycony.
  • Outline też nie zachwyca. Mamy nagłówek wbity w nagłówek i jeden pusty nagłówek + spłaszczoną hierarchię. No i znów brak nagłówka głównego.
  • Mój niezawodny Chrome Sniffer twierdzi, że to stoi na Liferayu.
  • Kod HTML jest zminifikowany, co akurat jest dobrą praktyką, przyspieszającą stronę. Niestety, z prędkością i tak jest tragicznie. Sczerze? Tak słabych wyników jeszcze nie widziałem.
  • Musiałem wrzucić kod do beautifiera, żeby coś się połapać. No i od razu widzę HTML 5 a przynajmniej DOCTYPE. Reszta kodu natomiast wygląda bardziej jak stary dobry HTML 4 z bardzo poważnym divitisem.
  • Oto kolejna strona, która deklaruje, że jest napisana w polskiej odmianie polskiego. Może to klasyczne czepianie się, ale ja bym napisał po prostu [lang=pl]. Chociaż ważne, że deklaracja języka w ogóle się pojawia.
  • Deklaracja kodowania winna być 1. w head. W teorii przeglądarka nie musi rozpoznać żadnych znaków spoza ASCII, które przed takową deklaracją wystąpią. Inna rzecz, że w HTML 5 nieskrócona deklaracja kodowania to marnowanie transferu.
  • Kolejnym marnowaniem transferu jest dla mnie pseudoXML-owy slash.
  • [rel^=shortcut] to wymysł IE. Cała reszta łyka samo [rel=icon]. Natomiast jeśli i tak korzystamy z pliku .ico, to najlepiej wrzucić to jako /favicon.ico i nie martwić się zupełnie tym tagiem.
  • <link href="http://empatia.mpips.gov.pl" rel="canonical" />

    Jedyna rzecz, jaka winna być enkodowana do encji w adresach, to ampersand (&). Nie widzę sensu w kodowaniu dwukropka i slashy – to kolejny przykład marnotrawienia transferu.

  • 9 arkuszy stylów – o 7 za dużo… Zaraz, na pewno 9? Oto co jest w main.css (tym pierwszym):

    @import url(portal/aui.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(portal_1.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(portal_2.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(taglib_1.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(taglib_2.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(portal/openid.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);
    @import url(portal/accessibility.css?browserId=other&themeId=piu_WAR_piutheme&languageId=pl_PL&b=6101&t=1384535102000);

    Pomijając już jakiś super śmieszny browser sniffing (browserId=other – no tak, najpopularniejsza przeglądarka w Polsce jest nierozpoznawana), to ktoś tutaj nie rozkminia parallel downloading.

  • Tutaj się uwielbia marnować transfer. Kolejny przykład? [type] dla skryptów i CSS.
  • Oto mamy tutaj wspaniały przykład browser sniffingu w JS. A raczej – w PHP i JS. PHP tnie nagłówek User-Agent a JS tworzy sobie ładne metody typu Liferay.Browser.isFirefox. To takie zeszłostuleciowe. Obecnie w większości przypadków powinno się stosować feature detection. Panowie z Google ładnie to wszystko tłumaczą. No i – po co testować WAP, WML i inne zgniłe na śmietniku historii technologie? Czuję jakby ten kod nie był zmieniany od 2001 roku.
  • 90 skryptów w head. Powtórzę raz jeszcze: 90 skryptów w head!!! O mało nie spadłem z krzesła, gdy to zobaczyłem. To przeczy wszelkim dobrym praktykom. Skryptów winno być do 3 i to na końcu body. A jeśli jest więcej, to bawimy się w modularne wczytywanie i rzeczy typu user intention (czyli wczytujemy JS na podstawie działań usera). Pod żadnym pozorem nie ładujemy bezmyślnie wszystkiego, co mamy. Naprawdę – do wyświetlenia prostej strony informacyjnej, która nawet tego JS-a nie potrzebuję, jestem zmuszony czekać na załadowanie się 90 skryptów? Ktoś jest po prostu niepoważny…
  • Komunikat o cookies jest w kodzie zawsze, nawet po zaakceptowaniu cookies. Po prostu domyślnie jest ukryty. Oczywiście „przycisk” do jego zamknięcia stosuje same najlepsze praktyki, zatem śmiem twierdzić, że user bez JS nie zostanie poinformowany o użyciu cookies (a strona i tak zapisze, że je obsługuje!). Małe przeoczenie?
  • <div class="clear"></div>

    Pusty element to zbędny element. Tym bardziej, że clearfix istnieje od kilku lat.

  • <div id="label"></div>

    W taki sposób wstawiono ten mały pasek kolorowy na górze strony. Przecież wystarczyłoby nadać tło dla body. Nie ma sensu tworzyć bezsensownych elementów tylko po to, żeby zmienić wygląd. Pisanie pod wygląd szybko odbija się czkawką.

  • <span><a onclick="decreaseFontSize();">-</a> <span class="letterA">A</span>  <a onclick="increaseFontSize();">+</a></span>

    Żenada. Z powodu braku [href] to coś jest niedostępne z klawiatury. O onclick już wcześniej wspominałem, zatem nie będę się powtarzał. No i przede wszystkim: jeśli coś nie ma sensownego [href] a jest klikalne, jest przyciskiem (button). Kropka.

  • <div id="contrastToggle" class="c" onclick="contrast()" style="cursor:pointer;">Wersja kontrastowa</div>

    Kolejna żenada. Wersja konrastowa winna mieć swój własny adres (by móc na nią przełączyć bez JS – przecież to podstawowe zasady), zatem to winien być link. Specyfikacja HTML 5 definiuje aż 2 rodzaje elementów interaktywnych: przycisk i link. A i tak wszyscy myślą, że kulawy onclick na div załatwi sprawę. Nie, nie załatwi. Bo takie coś nie jest dostępne z klawiatury, nie reaguje na Enter (bądź spację, w zależności od przeznaczenia), nie wyświetla informacji na pasku statusu przeglądarki (jak link), nie ma domyślnych stylów wskazujących na interakcję… Jeśli chce się zrobić linka z div to trzeba wiedzieć jak link działa. A i tak taka atrapa nigdy nie będzie działać poprawnie, bo wymięknie bez JS. Innymi słowy – element mający podnieść dostępność został wykonany metodą gwałcącą podstawowe zasady dostępności.

  • <h1 class="site-title"> <a class="logo default-logo logo1" href="http://empatia.mpips.gov.pl/web/piu/strona-glowna" style="float:left; background-image: url(http://empatia.mpips.gov.pl/piu-theme/css/../images/piu/logoemp.jpg);" title="Empatia"> <a class="logo default-logo logo2" href="http://www.mpips.gov.pl/" target="_blank" title="Ministerstwo Pracy i Polityki Społecznej"> </a> </h1>

    Im dalej, tym coraz lepiej. Oto link wbity w link a obydwa pozbawione jakiejkolwiek treści. Wystarczy, że obrazek się nie wczyta i na nic nam takie cuś. Kłania się nieznajomość image-replacement i po raz kolejny podstawowych zasad dostępności. No i po co ten [target]?

  • Pełno stylów inline. Rozdział aplikacji na warstwy też nie jest tu znany.
  • Ktoś nie ma pojęcia o pseudoelementach. W menu są aż dwa puste elementy dla każdej pozycji, które… wyświetlają dwie kreski (poziomą i pionową). To jest jak kod pisany dla IE 6.
  • No i w kodzie menu nie ma żadnego bzdurnego [tabindex=-1], zatem musi być to nadawane przez JS. Jaki jest sens tego?
  • Kod używa głównie nagłówków h1. Chociaż jest to dozwolone przez specyfikację HTML 5, to nie jest zalecane z powodów dostępności.
  • Na szczęście nagłówki niewidoczne w wizualnych są ukryte przy pomocy techniki .visuallyhidden – za to plus.
  • <li class="first"><span><a href="http://empatia.mpips.gov.pl">Emp@tia</a></span></li>
    <li class="last"><span><a href="http://empatia.mpips.gov.pl/web/piu/strona-glowna" >Strona główna</a></span></li>

    Takie coś wywołuje jedynie zamieszanie. Ten sam zasób nie powinien być dostępny pod dwoma linkami.

  • <div class="portlet-boundary portlet-boundary_103_ portlet-static portlet-static-end " id="p_p_id_103_"> <span id="p_103"></span> 
    	<div class="portlet-body"></div>
    </div>

    Jest sens produkować tyle kodu, żeby  nic nie wyświetlić?

  • 8 poziomów zagłębień div i w końcu  obrazek. Przecież to maksymalne marnowanie transferu. Nikt mi nie wmówi, że taka wręcz abstrakcyjna ilość divów jest potrzebna do… no właśnie, czego? Normalnego wyświetlenia obrazka? Tabelkowa sieka byłaby krótsza.
  • A teraz najlepsze. Kod tego obrazka wygląda tak:

    <img alt="" src="/documents/10180/28782/Baner+empatia+-+d%C5%82ugi/ce227bc5-645c-490c-bd29-c87dd577068d?t=1384344437516" style="width: 983px; height: 220px; margin-left: 10px;" />

    Dostajemy zatem obrazek bez jakiegokolwiek opisu. A to jest… powitanie na stronie. Pomijając już fakt, że to po prostu napis i napisem być powinien, to ktoś po raz kolejny udowadnia, że nie ma pojęcia o dostępności, bo zostawił pusty alt.

  • <header class="portlet-topper">
    	<h1 class="portlet-title"> <span > <img class="icon" id="etlj" src="/html/icons/search.png" alt="" /> </span> <span class="portlet-title-text"></span> </h1>
    	<menu class="portlet-topper-toolbar" id="portlet-topper-toolbar_3" type="toolbar"></menu>
    </header>

    Ten kod jest skrajnie bezsensowny. Znów dostajemy nagłówek bez treści, bo webmaster nie wie do czego służy alt. No i po co to puste menu?

  • Oczywiście wyszukiwarka pozbawiona jest label – niech niepełnosprawni zgadują co to jest, bo sekcja ma pusty nagłówek, pole nie ma etykiety a przycisk formularza jest bez opisu. Nic, tylko pogratulować. Oto czkawka, przed którą ostrzegałem.
  • <form action="" class="aui-form " id="_101_INSTANCE_650wLDDUbp0K_fm" method="post" name="_101_INSTANCE_650wLDDUbp0K_fm">
    	<input name="_101_INSTANCE_650wLDDUbp0K_formDate" type="hidden" value="1396536041346" />
    	<div class="lfr-meta-actions add-asset-selector"></div>
    </form>

    Ciekawi mnie jaki sens ma ten kod.

  • <a href="/web/piu/dla-swiadczeniobiorcow/rodzina?redirect=http%3A%2F%2Fempatia.mpips.gov.pl%2Fweb%2Fpiu%2Fstrona-glowna%3Fp_p_id%3D101_INSTANCE_650wLDDUbp0K%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26p_p_col_id%3Dcolumn-2%26p_p_col_count%3D5">Zobacz » </a>

    Przyjazne adresy.

  • De facto wszystko w kodzie ma skrajnie przekombinowany, totalnie niesemantyczny kod. To jest po prostu divowa sieka.
  • Lista linków z boku nie jest listą, chociaż to mnie nie powinno dziwić, patrząc na ten kod.
  • Jak wygląda licznik?

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    	<html>
    		<head>
    			<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    			<title>Licznik odwiedzin</title>
    		</head>
    		<body>Ta strona była do tej pory odwiedzona 77873 razy.</body>
    	</html>

    Widać o ramkach webmaster też nie słyszał.

  •  <span style="font-size:14px;">Wniosek o wydanie zaświadczenia o udzielonej pomocy,                        </span>

    Czyli witamy WYSIWYG.

  • <div class="portlet-boundary portlet-boundary_1_WAR_chatportlet_ portlet-static portlet-static-end chat-portlet " id="p_p_id_1_WAR_chatportlet_"> <span id="p_1_WAR_chatportlet"></span>
    	<div class="portlet-body"></div>
    	</div>
    	<form action="#" id="hrefFm" method="post" name="hrefFm"> <span></span>
    	</form>
    	</div>
    	<div style="clear:both"></div>
    	<footer id="footer" role="contentinfo"></footer>
    	</div>
    	<div id="label2"></div>

    Ten kod nie ma najmniejszego sensu. Stopka strony jest pusta a znajdujący się dalej div#stopa to oszust i szarlatan.

  • Oczywiście menu w stopce nie jest na liście i wszędzie jest powsadzana ohydna rurka (|). Menu na miarę strony.
  • <a id="ue" href="http://www.funduszeeuropejskie.gov.pl/Strony/glowna.aspx"></a>

    Oto jak się szanuje Unię – nawet w linku jej nie ma.

  • A później do końca strony lecą skrypty  Content Security Policy też nie jest tutaj znane.

No cóż, powiem krótko i dobitnie: to zdecydowanie najgorsza strona, jaka została u nas oceniona. Kod jest bardziej przekombinowany nawet od tabelkowych siek a to spore osiągnięcie.

PS za obecnie trwający urodzaj możecie podziękować firmie UJ, a zwłaszcza Wydziałowi Prac Rocznych.

34 myśli na temat “Empatia.mpips.gov.pl”

  1. Podziwiam wiedzę autora ale artykuł ten to jakieś nieporozumienie. Ocenianie tego typu projektu bez podstawowej wiedzy na temat jego działania wydaje się nierozsądne. Empatia to nie jest tylko fronend (choć ten wydaje się niedopracowany) ale w 90% to mechanizmy gromadzenia i udostępniania danych z pomniejszych różnych systemów dziedzinowych (liczonych w dziesiątkach tysięcy). Więc proszę o wstrzemięźliwość w ocenie autora w ocenie.

    1. Ale przecież ta strona wyraźnie nazywa się WebKrytyk i naszym celem jest ocenianie jedynie stron. Reszta projektu nas nie interesuje po prostu a sama ocena dotyczy tylko i wyłącznie portalu. I o nim się wypowiadam, bez odniesień do pozostałych części systemu.
      Nie widzę także powodu, dla którego nie mógłbym wyrazić krytycznej opinii jedynie o części większej całości. To tak jakbym nie mógł się wypowiadać o dziele pisarza bez znajomości całej jego twórczości. Po co mam czytać setki artykułów o mokrej sierści psów, jeśli interesował mnie tylko ten o suchej?
      Zaznaczę raz jeszcze: ten artykuł nie ocenia projektu Emp@tia jako całości, ale tylko i wyłącznie portal wchodzący w jego skład.

  2. Narzeka na divitis człowiek, którego strona cierpi na tę samą chorobę… O stosowaniu id elementów, które wskazują na prezentację, zamiast przeznaczenie nie wspomnę (równie dobrze można stosować style inline).
    div#body-left -> div#body_left_content -> div#content

    Na marnowanie transferu narzeka człowiek, który tworzy stronę w XHTML i stosujący komentowanie bloków kodu HTML.

    O onclickach bezpośrednio w tagach HTML pisze ktoś, kto ma je we własnym kodzie.

    Na nieresponsywną stronę narzeka autor bloga z ustawionym na sztywno width: 1000px;

    Panowie i panie! Aby wiarygodnie krytykować, warto samemu zadbać o swoje podwórko!

    1. Nie jestem właścicielem WebKrytyka, to po prostu medium przekazu. Jeśli chcesz ocenić moją stronę, to zapraszam na http://comandeer.pl
      Owszem, kod tego bloga nie jest doskonały a wspomnany onclick jest priorytetem na liście do poprawy. Niemniej nie ma raczej innego medium w Polsce, które skupiałoby się na takim wytykaniu błędów stron WWW. Sytuacja podobna jak z telewizją: wszyscy na nią psioczą, ale żeby zaistnieć i tak trzeba się zgodzić na jej warunki.

  3. Bardzo ładna analiza!
    Jedyne, do czego się przyczepię, to użycie validator.w3.org. Niestety jest on dość słaby i potrafi przepuszczać jako dobry kod, który jest jak najbardziej zły.
    Polecam ten http://validator.nu/ – jest wiele, wiele lepszy 🙂

    1. Na szczęście ten od W3C też poszedł po rozum do głowy i korzysta z Nu wewnętrznie (http://validator.w3.org/nu)
      Jednakże Nu, ze względu na swoje zasady działania, nie umie walidować poprawnie XHTML-a (albo przynajmniej tego, co winno nim być) – jest pisany ewidentnie pod parser HTML5.

  4. Drogi Autorze, bardzo trafnie zdiagnozowałeś że strona stoi na Liferayu ale niestety nie rozkminiłeś tego co się z tym wiąże. A wiąże się z tym to że programista, tak programista bo webmastera w takim sensie jak to pojmujesz w projekcie pewnie nie było, składa portal z komponentów JSF i nad dużą częścią rzeczy o których piszesz nie ma po prostu kontroli.

    1. W pełni rozumiem, że użycie gotowego CMS-a ogranicza nam ruchy, jednakże bądźmy poważni – jedne CMS-y są lepsze od innych i nie generują mega sieki. Jeśli składamy coś z klocków, to musimy mieć przecież świadomość, że kod będzie zdrowo przekombinowany.
      No i nic nie tłumaczy pogwałcenia podstawowych zasad dostępności.

    1. Zgodnie z nowymi informacjami, 45 mln dotyczyło całego systemu, nie tylko tego portalu. Sam portal, z tego co czytałem, kosztował 3.3 mln. Niemniej wydaje mi się, że ta kwota również byłaby wystarczająca dla autorskiego rozwiązania.

  5. Z tego co mi wiadomo, to te 3.3 mln to też nie do końca prawda. Tyle kosztowało całe (ekhm) ‚rozwiązanie’ składające się z kilku systemów z frontendem w postaci portalu (pewnie ESB, BI, jakiś silnik do przetwarzania formularzy).

  6. Nie zgodzę się tylko z narzekaniem na WYSIWYG, w końcu ktoś musi wklepać trochę tekstu na stronę, trudno dopilnować takiej rzeczy że jakaś pani naciśnie spację zamiast enter

  7. Dobrze się to czyta, można się pośmiać z „profesjonalisty”, który to stworzył. Chodź płacz byłby bardziej na miejscu. Pod skryptami znajdziemy jeszcze ciekawsze okruchy. Może to jakieś nowe „usprawnienie”. SessionID leci w url-ach, kto by się tam bezpieczeństwem przejmował… Jak tak „dobrze” robi się backend za pieniądze publiczne to nie dziwie się, że co chwile słychać, że strona urzędu XYZ została zaatakowana i podmieniona przez grupę XYZ.

  8. Nie wiem po co jest session ID w URL w tym wypadku ale kolega Michał chyba nigdy nie słyszał o url rewritting i po co to ktoś wymyślił.

    1. Jak dla mnie wymyślono go po to, żeby między innymi nie było sid w adresie i innych dziwnych parametrów.
      A zamiast sid w adresie i tak lepiej używać cookies, z flagami http_only i secure gdzie tylko możliwe

  9. Chyba mówimy o zupełnie innych rzeczach: http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzatz%2F51%2Fprogram%2Fsesdeci.htm

    Temat potrzeby używania tego mechanizmu w dzisiejszych czasach pomijam. Działanie aplikacji z przeglądarkami z wyłączonym cookie moim zdaniem jest i tak na granicy bezsensu (podobnie zresztą z brakiem obsługi JS – choć tu nie jest to bezsens w sensie stricte ale raczej problem natury ekonomicznej – połowę /90% ?/ istniejących stron trzeba by przepisać ).

    1. Faktycznie, rozwiązanie na tyle rzadkie, że o nim nie pomyślałem.
      Jeśli chodzi o cookies, to już kwestia bezpieczeństwa bardziej. Co do JS, dobrze napisana strona działa bez JS out of box. No ale to trza pamiętać, że link to link i opiera się na URI i w sumie tyle. Niestety, coraz częściej ta wiedza zanika…

  10. To w takim razie żadna dobrze napisana strona nie mogłaby korzystać z Ajaxa. Nie mówiąc już o rzeczach takich jak Ember JS czy Angular JS (na który zresztą przechodzi Google).

    Połowa użyteczności strony (chaty, resizing, drag ‚n drop, popups, web sockets, autoupdates). Mamy 2014 rok. Nikt już nie chce używać statycznych stron…

  11. Co do AJAX-a: przecież on w pełni opiera się na URI. Nie widzę sprzeczności.
    No i trzeba odróżnić stronę od webappa. I podstawową funkcjonalność od wypasionej. System wiadomości winien pozwolić wysłać wiadomość bez JS a z nim umożliwiać rozmowy w real time. Przy wykorzystaniu PE można to przecież łatwo zrobić.

  12. No ja się nie czepiam tego linka tylko braku JS w ogóle. Spróbuj wyłaczyć JS i wejść sobie na FB i wysłać wiadomośc (in fact – w ogóle otworzyć nawet listę znajowych) albo wejść na Twittera i przewinąć listę twittów.

    Ja nie twierdzę, że się bez JS nie da (wszystko się da) – twierdziłem tylko, że w dzisiejszych czasach to już ekonomicznie ciężko uzasadnić…

  13. Ogólnie rzecz ujmując po przeczytaniu listy uwag to trudno się z większością nie zgodzić. Z innej strony natomiast po wielu latach pracy przy dużych systemach (choć co prawda raczej w backendzie – ergo nie robię setki zagnieżdżonych DIVów ale mam swój – inny -zestaw grzechów na koncie) w zasadzie wiem skąd one się biorę.

    Portal z tego co widać napisany w Liferayu – to moim zdaniem wyjaśnie połowę błędów na tej liście (nie mam doświadczenia z Liferay ale pracowałem trochę kiedyś w projekcie z WebSphere Portal – konkurencyjny produkt). Sieka powstała podobna i ciężko to w zasadzie podobno było przegryźć. A cena za WebSphere jest taka, że z tych 3,3 mln to by zjadło na start z połowę (licencje roczne !!!!).

    No niestety taka jest powoli kolei rzeczy – wymagań coraz więcej, czasu na realizację projektów coraz mniej. Stąd używa się coraz bardziej wysokopoziomowych narzędzi. Czasami się da je nagiąć, czasami nie.

    Żeby nie było – ja tam nikogo nie bronię – ale prawda jest taka, że ze święcą szukać w dzisiejszych czasach projektów enterprise (w sektorze publicznym czy prywatnym) który by nie cierpiał na podobne grzechy (jak nie na frontendzie, to – co gorsza! – na backendzie).

  14. Faktycznie, jest trochę masakry. Cóż, od zawsze panuje błędny przekaz – jak validator uznał, że jest cacy, to musi być cacy.

  15. Pozdrawiam autora strony i analiz.Jestem zaskoczony że takie strony internetowe jak Pana są tak odważne.Gratuluję.
    Mi brakuje czasu na portal dlatego piszę Hobby Blogi.
    ___________
    Pomijam aspekty kodu,skryptów strony przedstawione w Felietonie i Hosting analizowanej strony w orange we francuskiej Firmie.
    ____________

    Skandalem jest amatorska interpretacja architektury strony przez pseudo twórców tej strony opłaconej za EU pieniądze i podatników w Polsce. Aktualność tej strony jest kpiną z wyborców i polskich informatyków.Przykład.
    Link:Wspieranie rodziny i piecza ..
    http://empatia.mpips.gov.pl/web/piu/statystyka/rodzina/wsparcie
    Co czytamy?

    Liczba asystentów rodziny wg stanu na dzień 30 czerwca i 31 grudnia 2012 r. w podziale na gminy wg województw
    Liczba asystentów rodziny wg stanu na dzień 30 czerwca i 31 grudnia 2012 r. w podziale na gminy wg województw (opracowanie na podstawie sprawozdań WRiSPZ-G z wykorzystaniem…
    _________________________________
    Rodziny zastępcze i placówki opiekuńczo-wychowawcze – informacje statystyczne
    Dane statystyczne dotyczące rodzin zastępczych i placówek opiekuńczo-wychowawczych na koniec 2012 r.

    To było w linku….Wspieranie rodziny.Makabra.Co za fałszerstwo….

    Mamy 2014 rok.Nastąpiły zmiany ale nie na tej stronie internetowej.

    Następne oszustwo w informacji jest fakt:5. Jakie świadczenia podlegają koordynacji?
    Kłamstwo:świadczenia z tytułu choroby i macierzyństwa oraz równoważne świadczenia dla ojca,
    świadczenia zdrowotne, w tym opieka medyczna….
    http://empatia.mpips.gov.pl/web/piu/dla-urzednikow/ue

    NFZ nie pokrywa operacji chorych dzieci w Polsce,które są skazane na śmierć i ratowane w EU zachodniej za pieniądze podatników w EU zachodniej…
    Strona zawiera prymitywne kłamstwa i jest rasistowską propagandą dla pseudo pro rodzinnej polityki w Polsce.
    _________________
    Jak może informatyk w Polsce tak kłamać za forsę….Zaraz napisze ….ale ja otrzymuję tylko teksty.Ja pytam.Dlaczego jako Polak pozwalasz na takie kłamstwa na tej skandalicznej anty rodzinnej stronie.?
    _________________
    Dobrze że na tej stronie nie ma statystyki odbierania dzieci bez wyroków w Polsce.
    _____________________________
    Przepraszam autora za te refleksje.Bezczelność projektu na tej stronie empatii wymaga indywidualnej analizy…..
    ________________________
    https://piu.mpips.gov.pl/web/piu/-/dodatek-z-tytulu-ksztalcenia-i-rehabilitacji-dziecka-niepelnosprawnego
    Dane są już nieaktualne.
    _________________________
    Rasizm spotykamy w tym linku:
    Zasiłek rodzinny
    W EU na w dziecko 190 EU a zarobki nie mają znaczenia.
    A Polsce zabronione czyli :
    https://piu.mpips.gov.pl/web/piu/-/zasilek-rodzinny
    Ale to co podałem nie jest na temat artykułu.

    _____________
    Czego życzę autorowi?zdrowia,sponsorów i kolejnych analiz.
    Pozdrawiam.Marek Lipski.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *