Úvod
Tento rok by sme mali urobiť komplet redizajn a reimplementáciu jednej web aplikácie IS VS. Viem, že vždy keď sme robili nejakú web apku pre VS, tak sme sa dosť zapotili aby sme boli v súlade so štandardami pre IS VS a dosiahli čo najvyššiu prístupnosť. Jedným z dosť kritizovaných bodov bola funkčnosť web aplikácie s vypnutým Javascriptom vo webovom prehliadači. Vždy sme museli ohýbať riešenie alebo kde sa nedalo pripraviť nejaku alternatívnu textovú verziu a podobne.
Angular/React/Vue
Na projektoch mimo verejnej správy už posledných pár rokov staviame FE ako SPA v Angular frameworku + REST API. Mnohí programátori už ani nie sú ochotní (resp. s veľmi ťažkým srdcom) sa baviť o server-side rendering web technológiách a už vôbec nie o tom stavať web aplikáciu, ktorá bude fungovať bez javascriptu.
Dal som otázku na standard@vicepremier.gov.sk, ale pytam sa aj vas na tomto fore, ci mate skusenosti s pouzitim SPA frameworkov v IS pre VS. Jedine co som nasiel je MetaIS (podla vsetkeho fici na starom AngularJS).
VRP je v Angulari https://vrp.financnasprava.sk/
Tiež by ma to, ale zaujímalo. Pamätám si boj, kedy som chcel používať HTML5 prvky a bol s tým problém. Nakoniec to prešlo s tým, že to nemalo plný počet bodov pri kontrole.
Už som videl aj PoC na server side renderované reacty, práve kvôli IS VS. Možno to je tiež nejaká cesta, ak by to nešlo normálne?
Možno závisí aj od použitia toho IS VS?
toto vzniklo kedysi v praveku na zaklade poziadaviek unie slabozrakych a nevidiacich. Zrejme uz dospel cas na overenie co je este aktualne a potrebne. A nasledne upravu standartov, kedze toto je skutocne oblast kde sa nakoniec vyrazne degraduje pouzitelnost.
Pokial ja viem, tak MetaIS cez kontrolu pristupnosti presiel, len sa strhli nejake body za to co angular nesplna. Cize podla mna to je OK uz aj dnes. Ale ved sa robi novy vynos, tak snad uz bude platit novy standard kym to dokoncite
Aj ked musim sa priznat, ze predtym som sa preklikal na nejaku inu starsiu stranku, kde bola zjavne starsia verzia vynosu, lebo tu vidim uz vynos s novelou z marca 2018 a v nej je odsek:
Aktívne prvky, ktorými sú skripty, aplety a iné programové objekty sa poskytujú prístupne alebo sa zabezpečuje, že sú webové stránky použiteľné, aj keď sú aktívne prvky vypnuté alebo nie sú podporované. Ak to nie je možné, poskytujú sa ekvivalentné informácie na alternatívnej prístupnej webovej stránke.
3.1.Skripty na webovej stránke sa poskytujú v súlade s platnými technikami prístupného použitia Javaskriptu podľaprílohy č. 10.
Pritom evidujem, že v tých časoch (okolo 2013) to bolo inak.
Pozrel som sa do staršieho výnosu z 2010 (aktualizovany bol nasledne v marci 2014) a tam to bolo skutočne ešte inak:
Zabezpečuje sa, aby sa webové stránky dali použiť, aj keď sú aktívne prvky, ktorými sú skripty, aplety a iné programové objekty, vypnuté alebo nie sú podporované. Ak to nie je možné, poskytujú sa ekvivalentné informácie na alternatívnej prístupnej webovej stránke.
Čiže, moja chyba, lebo zjavne je to celé o tom implementovať tú web aplikáciu prístupne, čomu rozumiem, ale to je možné aj u SPA frameworkov ako Angular (Angular).
Ale aj tak môže byť toto vlákno zaujímavé, lebo by ma zaujímalo či v poslednom období vznikli nejaké SPA webové aplikácie VS (v niečom novšom ako AngularJS = Angular 1).
Uz davno vo vynose plati, ze JS je mozne pouzivat bez nejakych zasadnych obmedzeni, pokial je aplikovany pristupne. Ano, prva verzia tam mala take relativne nestastne obmedzenie, ze to musi fungovat aj bez JS, ale to sme potom zrusili, resp. nahradili formulaciou, ze pouzite JS musi byt pristupne. Angular ma kopu diskusii o pristupnosti, nie je to jednoduche spravit to dobre ked som si to pozeral. Co by bolo vhodne je viac sa zaoberat realitou ako vynosom. Mohli by vam pomoct napr. na https://unss.sk/, robia realne testovania webov citackami. A vzdy je na mieste otazka, o aku aplikaciu sa jedna a ci Angular/JS framework je naozaj nutny alebo je to len hracka pre vyvojarov za statne peniaze.
Asi budem staromodny, ale tieto frontendove Angulary/vue/Reacty davaju zmysel ked na webe potrebujete robit takeho tucnejsieho klienta/webapp. Co je pomerne uzky scenar. Ano je to cool, tak isto bol cool kedysi Flash, XUL ci Java applety.
problem ako ho vnimam je prave v standartoch, suhlasim ze je potrebne sa zaoberat realitou ale to znamena ze je potrebne zjednodusit vynos na podobu “aplikacia ma byt pristupna” a zamerat sa na testovanie pristupnosti. A miesto vynosu spravit doporucenie ako ma vyzerat pristupna aplikacia.
A mozno sa zamerat ja na to ako je to vlastne dolezite a do akej miery. Ci sa nesnazime dosiahnut nieco co nikto nevyuziva.
Nesúhlasím, že ide o úzky scenár. V dnešnej dobe, kedy požadujeme, aby boli služby používateľsky prívetivé, aby aplikácie sprevádzali používateľa procesom, poskytovali mu vizuálnu spätnú väzbu a zároveň boli dlhodobo udržateľné, prípadne očakávame, že aplikácia sa bude dať použiť offline a zároveň bude responzívna sa bez javascript frameworkov asi nezaobídeme. Nehovorím, že sa nedá naplniť všetko, čo som napísal aj bez toho, ale vďaka “komponentovosti”, modulárnosti, dostupnosti a popularite sú práve tieto frameworky pomerne versatilné a použiteľné v množstve situácií. V štátnej sfére máš množstvo wizardov na strane občana (kde je potrebné efektívne udržiavať stav a riešiť výpadky internetového pripojenia a podobne) a na strane úradníka máš skoro až tučných klientov a agendové systémy.
Zároveň je tu ešte jedna výhoda a to je nútený decoupling frontendu a backendu (a dúfam, že ak softvér robí rozumný človek, tak použije štandard napr. OpenAPI pre popísanie rozhrania medzi FE a BE), čo vďaka generovaniu kódu a mockovaniu umožňuje nie len paralelný vývoj a rýchlejšie dodanie aplikácie, ale aj v budúcnosti jednoduchší upgrade.
SPA určite nie je vhodná všade, ale v dobe, kedy chceme aby appky bežali na telefóne ideálne natívne (môžme napr. zdieľať komponenty react vs react native) a konečne sa sústredíme na používateľskú prívetivosť, sú tieto frameworky super nástroj ako to dosiahnuť.
Neporovnával by som to ani zďaleka s “Flash, XUL ci Java applety”
Súhlasím, ale do budúcna v súvislosti s tými mobilnými appkami, sú PWAčky určite zaujímavé a prejsť z SPAčky na PWA nie je taký rozdiel ako zo server side renderovaného FE.
Poznám napr. wicket, ale otázka je, koľko existuje phoenix framework developerov (wicket developera už nechce robiť nikto) a koľko angular/react/vue developerov. Je to síce blbé, ale pri vývoji aplikácie pre štátnu sféru (alebo aj iné dlhodobo udržiavané projekty s otáznym ďalším, súvislím rozvojom) vzhľadom na to, ako je tento sektor flexibilný (skoro vôbec), je veľká zodpovednosť na výbere technológií a na výbere a použití udržateľného ekosystému ideálne open source, postavený na štandardoch a čo najviac používaný s čo najväčším ekosystémom a dostupnosťou developerov na trhu.
Myslím, že ľahšie prerobím appku z angularu do vue ako z wicketu do vue, ale ešte som to nerobil, tu sa hodí práve ten decoupling, ktorý by mi vznikol.
Určite to nie je kladivo na všetko a možno len zrovna mám aktuálne niekoľko prípadov, kedy mne to pripadá ako najlepšie riešenie, ale možno keby okolo toho nebolo také tabu (prečo vlastne vznikol tento post), tak by architekti pri návrhu mohli zvážiť aj SPAčky.
Preach! Myslim, ze niektori dodavatelia to pochopili presne naopak ako prilezitost sa betonovat svojimi na kolene vyrobenymi fw
Moj sukromny dojem z celeho ekosystemu dnes je ten, ze SPA sa tlacia aj tam kde by vobec byt nemali (jednoduche apps, ziadny tucny klient) pride mi to minimalne kanon na vrabce.
Ja by som este doplnil, ze v zasade decoupling implikuje pre FE cloveka nezavislost na backend platforme.
U nas vo firme mame vela Angular programatorov, ktori sa presuvaju z projektu na projekt nezavisle od toho ci BE je JAVA alebo .NET a jedine co ho zaujima je url adresa na swagger. Cize vnimam to pozitivne aj z pohladu zdielania ludi.
Nikde sa na fore nespomina(l) nextjs (https://nextjs.org/)… Tak si ho tu, ako uz vysluzily, toho casu nie velmi aktivny vyvojar, dovolim zareferencovat. Je mi jasne, ze skor svedci mensim projektom (malym teamom, super hrdinom - 10x programmer)… ale, to je aj moj pohlad, ze by sme in general mali IT projekty, robit ako male, dielcie projekty, nie mega supy, kde sa odhaduje neodhadnutelne.
Tiež som zástancom fullstackovosti a T-shaped ľudí, ale zdieľanie znalostí a skúsenosti medzi platformami ako spomína @lukas.net je super.
Bohužiaľ žijeme v spoločnosti, kde frontend je “dôležitejší” ako backend. (silná metafora)
ak riesenia postavene na Angular/React/Vue/<cokolvek> odobria oni, nemali by s tym mat problem ani ini ( @vliv2 spomenul testovanie, tot aby sme sa nespoliehali len na Vybos a jeho “dovolene tako, zakazane takto, …” ktora sa tazko udrziaa aj aktualne aj nepriestrelne)
zaroven teda vieme na danej PS iniciovat dalsie upravy Vynosu a “reagovat na dobu”, len teda potrebujeme nejaky vstup, ci uz tu alebo inde a inak