SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Ukázky
a návrhové
vzory
Přístupnost
v kódu:
Martin Michálek
WebExpo 2017
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
1. Struktura stránky
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
Tohle pro vás asi nebude nic nového, že?
Dobrá struktura nadpisů je jeden z důležitých výstupů práce frontendisty. Tady je vidět struktura jednoho
z článků na Vzhůru dolů. Hezky to zpracují vyhledávače nebo třeba odečítače obrazovky zrakově
postižených. Těm ale takovéhle zpracování stránky nějaký čas zabere.
Vezměme tři typy uživatelů: běžní (jen po ránu nevyspalí), krátkozrací a nevidomí.
pomalejší
5×
Nevidomí uživatelé čteček mohou být až pětkrát pomalejší než vy.
režimy
čtečky4Nadpisy
Šipky
Ctrl+F
Orientační body
Čtečky pro nevidomé mají 4 režimy: Procházají nadpisovou strukturu, používají šipky pro rychlé čtení nebo
tabulátor pro procházení aktivních častí. Stejně jako my pak používají CTRL+F, když něco nemohou najít.
A ten nejrychlejší režim - navigaci po orientačních bodech.
role="main"
role="banner"
role="navigation" role="search"
role="complementary"
role="contentinfo"
Co jsou orientační body? Když chce uživatel skočit přímo na navigaci, nemusí procházet nadpisovou
strukturu a všechno číst. Prostě půjde přímo na navigaci. Díky role="" atributům, které přidáte na důležitá
místa stránky.
<div role="main">
<main>
×
Používat role atributy nebo HTML5 strukturální elementy?Já dřív HTML5 elementy nedoporučoval, protože
čtečky podporovaly role atributy, ale moc ne HTML5 tagy. A kvůli starších Explorerů bylo nutné používat
zbytečné Javascripty. https://www.vzhurudolu.cz/prirucka/html5-struktura
Mezitím se ale situace s IE vyřešila.
<main role="main">
<header role="banner">
<div role="search">
<aside role="complementary">
<footer role="contentinfo">
<nav role="navigation">
Q
D
Používejte prostě obojí. Jsou tu ještě klávesové zkratky čteček pro přechod na konkrétní prkvy. Skok na
hlavní obsah nebo navigaci a jedno tlačítko? Bude tenhle uživatel pořád pětkrát pomalejší než vy?
@media print {
body > *:not(main) {
display: none;
}
}
Dá se s tím navíc kreativně pracovat v kodérské praxi. Tady třeba pro tisk schovávám 

všechno, co není hlavní obsah stránky.
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
2. Tlačítka
<button>
Tlačítko
</button>
Tohle je tlačítko. To víte.
<a href="#" class="btn">
Tlačítko
</a>
Tohle znáte a vsadím se, že i někde používáte. Je ale dobrý nápad stylovat odkaz jako tlačítko? Za chvíli
uvidíte, že nemusí být.
<span>
Tlačítko
</span>
Vezměme to ale z jiné strany - představme si, že jsme prasátka a chceme udělat tlačítko ze spanu. Viděli
jste to někde? Ve vlastním kódu ale ne, že ne?
<span class="btn">
Tlačítko
</span>
Chybí stylování - přidáme třídu.
<span class="btn"
role="button">
Tlačítko
</span>
Chybí význam pro čtečky - přidáme role.
<span class="btn"
role="button"
tabindex="0">
Tlačítko
</span>
Chybí možnost zaměření a tabnutí - přidáme tabindex.
<span class="btn"
tabindex="0"
role="button"
onclick="…">
Tlačítko
</span>
Chybí možnost přechodu jinam - přidáme onclick.
<span class="btn"
tabindex="0"
role="button"
onclick="…"
onkeypress="if(event.keyCode==32){…}">
Tlačítko
</span>
Chybí aktivace z klávesnice na space - přidáme onkeypress.
Teprve teď jsme udělali plnohodnotné tlačítko.
I tak <span> pro tyhle účely opravdu nepoužívejte. Prosím!
<span> ✔
<a> ✔ ✔ ✔
<button> ✔ ✔ ✔ ✔ ✔
Vypadá Kliká Zaměření Význam Mezerník
Není to vidět, ale nativní <button> nebo <input type="submit> v sobě mají nečekanou škálu funkcí. U
<spanu> chybějí všechny, ale některé z nich nemá ani <a>: chybí role="button" a možnost aktivace
mezerníkem.
<a href="#" class="btn"
role="button"
onkeypress="if(event.keyCode==32){…}">
Tlačítko
</a>
Samozřejmě, může se stát, že tlačítko potřebujeme udělat z odkazu. Pak ale ošetřeme význam a přidejme
možnost aktivace mezerníkem.
Umíte HTML?
Jak třeba ale v HTML zapíšete záložkovou navigaci nebo tooltip? Tak, aby čtečka pochopila význam?
Slouží k tomu WAI-ARIA role pro widgety. Další obsah pro atribut role="". Jsou součástí specifikace HTML5
a velmi doporučuji se všechny naučit.
alert
alertdialog
button
checkbox
dialog
gridcell
link
log
marquee
menuitem
menuitemcheckbox
menuitemradio
option
progressbar
radio
scrollbar
slider
spinbutton
status
tab
tabpanel
textbox
timer
tooltip
treeitem
→ vrdl.in/ariawidget
alert
alertdialog
button
checkbox
dialog
gridcell
link
log
marquee
menuitem
menuitemcheckbox
menuitemradio
option
progressbar
radio
scrollbar
slider
spinbutton
status
tab
tabpanel
textbox
timer
tooltip
treeitem
→ vrdl.in/ariawidget
alert
alertdialog
button
checkbox
dialog
gridcell
link
log
marquee
menuitem
menuitemcheckbox
menuitemradio
option
progressbar
radio
scrollbar
slider
spinbutton
status
tab
tabpanel
textbox
timer
tooltip
treeitem
→ vrdl.in/ariawidget
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
3. Schovávání obsahu
display: none;
visibility: hidden;
<div hidden>…</div>
⨯ ⨯⨯
Když chcete prvek schovat, použijete asi display: none. Jenže opravdu to chcete? Prvek nebude vidět ve
čtečkách, ale i Google dá schovanému obsahu menší váhu. 

Takže pokud schovávat, nezkusit to dělat chytřeji?
max-height: 0;
overflow: hidden;
opacity: 0;
⨯ ⨯
Čtečky nijak neřeší ořezaný obsah, takže tohle všechno normálně přečtou.
Hlavně max-height: 0; je užitečný pro různé rozklikávání obsahu nebo navigací na mobilech.
<a href="#main" class="skip-link">
Přejít na obsah
</a>
.skip-link {
position: absolute;
top: 0;
right: 100%;
}
.skip-link:focus {
right: auto;
}
⨯
→ vrdl.cz
Další příklad je obsah jen pro čtečky. Odkazy pro přecházení na obsah se stále hodí. Ne všichni mají čtečky,
které umějí ARIA role. Progressive enahancement používáme i při kódování pro zrakově hendikepované.
<span class="icon" aria-hidden="true">
</span>
⨯ ⨯
Některé prvky bývají v kódu jen pro servisní účely. Jako tady span pro ikonku. Je lepší je před čtečkami
schovat, nejlépe pomocí atributu aria-hidden="".
<span class="icon" aria-label="Menu">
</span>
⨯
Ale ještě lepší je opět neschovávatt a dát ji popisek. aria-label="" je něco jako alt="" u obrázků, 

jen naprosto univerzální.
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
4. Klávesnice
• Interaktivní: <a>, <input>, <video>…
• Nejsou „disabled“
• Nejsou „hidden“
TAB:focus &
Které prvky jsou samy od sebe „fokusovatelné“ (zaměřitelné) 

a je možné k nim přistoupit pomocí tabulátoru?
<button disabled>
Tlačítko
</button>
Zase příklad s tlačítkem: zakázaný <button> focus automaticky
prohlížeč vyloučí ze „zaměřitelných“.
<a href="#"
class="btn btn--disabled"
tabindex="-1">
Tlačítko
</a>
U tlačítka to musíme dodělat ručně pomocí tabindexu. Mrkněme teď na tehle parametr. Tabindex se
záporným číslem schová jinak zaměřitelný element.
Přidání focusu a možnosti tabnutí:
<ul tabindex="0">
…
</ul>
tabindex="0" umožní zaměřit jinak klávesnicí nezaměřitelný element.
Brzy si ukážeme jedno použití.
* {
outline: none;
}
Prosím, nerušte outline.
* {
outline: none;
}
❌
Zbavíte se sice (pro někoho) ošklivého okraje, ale znemožníte zaměřit element z klávesnice.
Kdyžtak to změňte, ale rozumně.
TAB TAB
Neotevírejte vrstvy na focus. Znamená to pak, že musím tabulátorem projít všechny otevírané vrstvy. Lepší
je použít k otevření vrstev nebo podnavigací mezerník.
• tabulátor - posun po aktivních elementech
• mezerník - aktivace elementu
• enter - odeslání, přechod jinam
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování
5. Našeptávač
Krok 1: Máme „normální“ našeptávač.
<label for="search">
Hledám:
<input type="text" value="Hrušky" id="search" autocomplete="off">
</label>
<ul id="results">
<li>Jablka</li>
<li id="active">Hrušky</li>
</ul>
Krok 1: Máme „normální“ našeptávač. Takto vypadá kód.
<label for="search">
Hledám:
<input type="text" value="Hrušky" id="search" autocomplete="off"
role="combobox">
</label>
<ul id="results" role="listbox" tabindex="0">
<li role="option">Jablka</li>
<li role="option" id="active">Hrušky</li>
</ul>
Krok 2: Přidám role="" pro význam.
<label for="search">
Hledám:
<input type="text" value="Hrušky" id="search" autocomplete="off"
role="combobox"
aria-describedby="description">
</label>
<span id="description" class="sr-only">
Z dostupných hodnot vybírejte šipkami nahoru a dolů.
Pro výběr zmáčkněte klávesu Enter. Na dotykových zařízení
použijte gesto švihnutí nahoru a dolů.
</span>
<ul id="results" role="listbox" tabindex="0">
<li role="option">Jablka</li>
<li role="option" id="active">Hrušky</li>
</ul>
Krok 3: Do #description přidám nápovědu pro ovládání nevidomímy. Pomocí aria-describedby ji pak
napojím na input.
<label for="search">
Hledám:
<input type="text" value="Hrušky" id="search" autocomplete="off"
role="combobox"
aria-describedby="description"
aria-owns="results">
</label>
<span id="description" class="sr-only">
Z dostupných hodnot vybírejte šipkami nahoru a dolů.
Pro výběr zmáčkněte klávesu Enter. Na dotykových zařízení
použijte gesto švihnutí nahoru a dolů.
</span>
<ul id="results" role="listbox" tabindex="0">
<li role="option">Jablka</li>
<li role="option" id="active">Hrušky</li>
</ul>
Krok 4: Pomocí aria-owns="" vyrobím propojení mezi inputem a našeptávanými hodnotami.
<label for="search">
Hledám:
<input type="text" value="Hrušky" id="search" autocomplete="off"
role="combobox"
aria-describedby="description"
aria-owns="results"
aria-activedescendant="active">
</label>
<span id="description" class="sr-only">
Z dostupných hodnot vybírejte šipkami nahoru a dolů.
Pro výběr zmáčkněte klávesu Enter. Na dotykových zařízení
použijte gesto švihnutí nahoru a dolů.
</span>
<ul id="results" role="listbox" tabindex="0">
<li role="option" aria-selected="false">Jablka</li>
<li role="option" aria-selected="true" id="active">Hrušky</li>
</ul>
→ vrdl.in/autoac
Krok 5: Zvýraznění aktivní položky pomocí aria-selected="" a aria-activedescendant="".
Celý nezjednodušený našeptávač je možné si zkusit na haltersweb.github.io/Accessibility.
1. Struktura stránky
2. Tlačítka
3. Schovávání obsahu
4. Klávesnice
5. Našeptávač
6. Testování6. Testování
Nadpisy
Pro jednorázové otestování se hodí tenon.io.
V DevTools teď máte Lighthouse, sadu testů, která umí projít i přístupnost.
<div class="button" role="button">
Tlačítko
</div>
Ale pozor, automaty jsou jen automaty.
Jako správný vyhodnotí i třeba takový patvar.
JAWS
Explorer
VoiceOver
Safari
TalkBack
Chrome
Windows
NVDA
Firefox
Apple Android
Úplně nejlepší je testovat to v reálných čtečkách. Na každé platformě nějaké máte.
Tady jsou doporučené kombinace od Radka Pavlíčka. Takže Vzhůru do testování.
1. <main role="main">
2. Aktivní prvek? <button>!
3. role="" pro UI komponenty
4. display: none NE, aria-hidden ANO
5. Ošetřím :focus a klávesnici
6. aria-label, aria-labelledby
7. Testuju
8. #VzpomenuSi
Díky!
vzhurudolu.cz
@machal
Za inspiraci k přednášce děkuji našemu Honzíkovi a za spolupráci Radkovi Pavlíčkovi.
Díky! A vzpomeňte si při kódování na ostatní.

Mais conteúdo relacionado

Semelhante a WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory

Jak se dělá webdesign
Jak se dělá webdesignJak se dělá webdesign
Jak se dělá webdesignJan Valuštík
 
Jak rozpoznat hodnotné informace
Jak rozpoznat hodnotné informaceJak rozpoznat hodnotné informace
Jak rozpoznat hodnotné informaceMartin Paták
 
Jak vypadá úspěšný newsletter v on-line retailu?
Jak vypadá úspěšný newsletter v on-line retailu?Jak vypadá úspěšný newsletter v on-line retailu?
Jak vypadá úspěšný newsletter v on-line retailu?Colpirio.com s.r.o.
 
Žijeme s uživateli
Žijeme s uživateliŽijeme s uživateli
Žijeme s uživateliPetr Stedry
 
Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)David Grudl
 
UX monday - uživatelské testování
UX monday - uživatelské testováníUX monday - uživatelské testování
UX monday - uživatelské testováníDesingdev
 
05 online ws měření chování na internetu – stemmark jan fait
05 online ws měření chování na internetu – stemmark jan fait05 online ws měření chování na internetu – stemmark jan fait
05 online ws měření chování na internetu – stemmark jan faitSIMAR
 
Prototypování webových aplikací
Prototypování webových aplikacíPrototypování webových aplikací
Prototypování webových aplikacíJakub Španihel
 
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)Péhápkaři
 
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)Martin Zeman
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaJan Hřídel
 
10 praktických CSS3 a SVG řešení
10 praktických  CSS3 a SVG řešení10 praktických  CSS3 a SVG řešení
10 praktických CSS3 a SVG řešeníMartin Michálek
 
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014Jan Kvasnička
 
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdf
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdfJak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdf
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdfDesingdev
 
I pro knihovny je přístupnost důležitá
I pro knihovny je přístupnost důležitáI pro knihovny je přístupnost důležitá
I pro knihovny je přístupnost důležitáRadek Pavlíček
 
Jak na copywriting prakticky - správné psaní pro web
Jak na copywriting prakticky - správné psaní pro webJak na copywriting prakticky - správné psaní pro web
Jak na copywriting prakticky - správné psaní pro webEffectix.com
 

Semelhante a WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory (17)

Jak se dělá webdesign
Jak se dělá webdesignJak se dělá webdesign
Jak se dělá webdesign
 
Jak rozpoznat hodnotné informace
Jak rozpoznat hodnotné informaceJak rozpoznat hodnotné informace
Jak rozpoznat hodnotné informace
 
Jak vypadá úspěšný newsletter v on-line retailu?
Jak vypadá úspěšný newsletter v on-line retailu?Jak vypadá úspěšný newsletter v on-line retailu?
Jak vypadá úspěšný newsletter v on-line retailu?
 
Žijeme s uživateli
Žijeme s uživateliŽijeme s uživateli
Žijeme s uživateli
 
Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)
 
UX monday - uživatelské testování
UX monday - uživatelské testováníUX monday - uživatelské testování
UX monday - uživatelské testování
 
05 online ws měření chování na internetu – stemmark jan fait
05 online ws měření chování na internetu – stemmark jan fait05 online ws měření chování na internetu – stemmark jan fait
05 online ws měření chování na internetu – stemmark jan fait
 
Prototypování webových aplikací
Prototypování webových aplikacíPrototypování webových aplikací
Prototypování webových aplikací
 
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)
Martin Zeman - Moje první aplikace v Symfony 3 (4. sraz přátel Symfony v Praze)
 
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)
Moje první aplikace v Symfony 3 + překvapení (4. sraz přátel Symfony v Praze)
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáška
 
10 praktických CSS3 a SVG řešení
10 praktických  CSS3 a SVG řešení10 praktických  CSS3 a SVG řešení
10 praktických CSS3 a SVG řešení
 
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
Jak navrhnout úspěšný web krok za krokem | VŠB - APPLE JUICE MEETING | 27.3.2014
 
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdf
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdfJak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdf
Jak se nezbláznit z Discovery Backlogu (Opportunity Solution Tree).pdf
 
I pro knihovny je přístupnost důležitá
I pro knihovny je přístupnost důležitáI pro knihovny je přístupnost důležitá
I pro knihovny je přístupnost důležitá
 
Jak na copywriting prakticky - správné psaní pro web
Jak na copywriting prakticky - správné psaní pro webJak na copywriting prakticky - správné psaní pro web
Jak na copywriting prakticky - správné psaní pro web
 
Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4
 

Mais de Martin Michálek

Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeRychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeMartin Michálek
 
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?Martin Michálek
 
Browsers: from competition to collaboration
Browsers: from competition to collaborationBrowsers: from competition to collaboration
Browsers: from competition to collaborationMartin Michálek
 
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webuMartin Michálek
 
17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webůMartin Michálek
 
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?Martin Michálek
 
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlostiBlbosti kolem webové rychlosti
Blbosti kolem webové rychlostiMartin Michálek
 
SEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webuSEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webuMartin Michálek
 
Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)Martin Michálek
 
CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)Martin Michálek
 
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíAMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíMartin Michálek
 
Metriky rychlosti načítání
Metriky rychlosti načítáníMetriky rychlosti načítání
Metriky rychlosti načítáníMartin Michálek
 
Je CSS vážně tak podivné?
Je CSS vážně  tak podivné?Je CSS vážně  tak podivné?
Je CSS vážně tak podivné?Martin Michálek
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
 
Slasti a pasti prototypování v HTML
Slasti a pasti  prototypování v HTMLSlasti a pasti  prototypování v HTML
Slasti a pasti prototypování v HTMLMartin Michálek
 
Debugování responzivních webů
Debugování responzivních webůDebugování responzivních webů
Debugování responzivních webůMartin Michálek
 
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůVše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůMartin Michálek
 
Design webů v prohlížeči
Design webů v prohlížečiDesign webů v prohlížeči
Design webů v prohlížečiMartin Michálek
 
Responzivní obrázky v praxi
Responzivní obrázky v praxiResponzivní obrázky v praxi
Responzivní obrázky v praxiMartin Michálek
 

Mais de Martin Michálek (20)

Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeRychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
 
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?
 
Browsers: from competition to collaboration
Browsers: from competition to collaborationBrowsers: from competition to collaboration
Browsers: from competition to collaboration
 
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
 
17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů
 
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
 
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlostiBlbosti kolem webové rychlosti
Blbosti kolem webové rychlosti
 
SEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webuSEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webu
 
Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)
 
CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)
 
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíAMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízí
 
Metriky rychlosti načítání
Metriky rychlosti načítáníMetriky rychlosti načítání
Metriky rychlosti načítání
 
Je CSS vážně tak podivné?
Je CSS vážně  tak podivné?Je CSS vážně  tak podivné?
Je CSS vážně tak podivné?
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Slasti a pasti prototypování v HTML
Slasti a pasti  prototypování v HTMLSlasti a pasti  prototypování v HTML
Slasti a pasti prototypování v HTML
 
Debugování responzivních webů
Debugování responzivních webůDebugování responzivních webů
Debugování responzivních webů
 
Mobile First v praxi
Mobile First v praxiMobile First v praxi
Mobile First v praxi
 
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůVše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
 
Design webů v prohlížeči
Design webů v prohlížečiDesign webů v prohlížeči
Design webů v prohlížeči
 
Responzivní obrázky v praxi
Responzivní obrázky v praxiResponzivní obrázky v praxi
Responzivní obrázky v praxi
 

WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory