<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Martin Pešout &#187; Přístupnost</title>
	<atom:link href="https://www.martinpesout.cz/category/pristupnost/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.martinpesout.cz</link>
	<description>Front-end vývojář</description>
	<lastBuildDate>Thu, 26 Jun 2025 22:12:07 +0000</lastBuildDate>
	<language>cs-CZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>Kniha: Inclusive Design Patterns</title>
		<link>https://www.martinpesout.cz/kniha-inclusive-design-patterns/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>https://www.martinpesout.cz/kniha-inclusive-design-patterns/#comments</comments>
		<pubDate>Tue, 27 Dec 2016 09:12:08 +0000</pubDate>
		<dc:creator>Martin Pešout</dc:creator>
				<category><![CDATA[Kniha]]></category>
		<category><![CDATA[Přístupnost]]></category>

		<guid isPermaLink="false">http://www.martinpesout.cz/?p=2548</guid>
		<description><![CDATA[Pokud se zabýváte novinkami kolem vývoje frontendu, nemohlo vám uniknout, že Smashing Magazine vydává každým rokem několik svých publikací. Letos v září byla výdána nová kniha s názvem Inclusive Design Patterns. Knihu jsem si objednal a musím říct, že se]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Pokud se zabýváte novinkami kolem vývoje frontendu, nemohlo vám uniknout, že <a href="https://www.smashingmagazine.com/">Smashing Magazine</a> vydává každým rokem několik svých publikací. Letos v září byla výdána nová kniha s názvem <strong>Inclusive Design Patterns</strong>. Knihu jsem si objednal a musím říct, že se četla doslova sama. Rozhodl jsem se proto sepsat hlavní postřehy pro ty z vás, kteří možná ještě přemýšlí nad koupí nebo hledají možnost pro nové sebevzdělávání.</p>
<p><span id="more-2548"></span></p>
<p>Autorem knihy je Heydon Pickering, známý jako UI designer, řečník a odborník na přístupnost na webu. Na Smashing Magazine je <a href="https://www.smashingmagazine.com/author/heydon-pickering/">autorem několika zajímavých článků</a>. Dále provozuje svůj blog <a href="http://www.heydonworks.com/">HeydonWorks</a>.</p>
<p><img class="alignnone size-full wp-image-2561 aligncenter" alt="inclusive-design-patterns-22-preview-opt" src="http://www.martinpesout.cz/wp-content/uploads/2016/12/inclusive-design-patterns-22-preview-opt.jpg" width="660" height="658" /></p>
<h2>Zaměření knihy</h2>
<p>Hlavním tématem knihy je tvorba snadno přístupných webů a webových rozhraní. Autor říká, že si možná ani tento problém neuvědomujeme, ale jako vývojáři vytváříme špatně přístupné webové stránky odjakživa. Problémem není nedostatek talentu nebo vědomostí. Problémem je způsob, jakým řešíme konkrétní úkoly.</p>
<p>Heydon si dal za cíl čtenářům ukázat, jak lze vytvořit přístupná rozhraní bez velkého úsilí. Chce všem sdělit, že je nutné nad návrhem komponent přemýšlet jiným způsobem. Je třeba navrhovat web inkluzivně.</p>
<h2>Inkluzivní design &#8211; co to spojení znamená?</h2>
<p>Inkluzivní návrh webu hovoří o tom, že je třeba při vývoji frontendu nahlížet na problém z různých perspektiv. Váš web si budou pravděpodobně prohlížet velice různí uživatelé. Musíme brát v potaz už jen to, že někteří z nich budou web prohlížet na svém notebooku a jiní na mobilu. Někteří můžou mít velice špatné internetové připojení. Jiní zas trpí zrakovou vadou a jsou odkázaní na své čtečky obrazovky s hlasovým výstupem. A to je jen drobný výčet možných situací. Inkluzivní návrh je takový návrh, který počítá s možnými problémy.</p>
<p>Vypůjčil jsem si jednoduchou ukázku z knihy.</p>
<p>HTML:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;button&quot;&gt;&lt;/div&gt;
</pre>
<p>CSS:</p>
<pre class="brush: css; title: ; notranslate">
.button {
  width: 200px;
  height: 70px;
  background: url('../images/button.png');
}
</pre>
<p>JavaScript:</p>
<pre class="brush: jscript; title: ; notranslate">
button.addEventListener('click', function() {
  // the event fired on click
});
</pre>
<p>Takto navržené tlačítko nepočítá s rozdílným chováním uživatelů. Možných problémů je hned několik. Například:</p>
<ul>
<li>Tlačítko obsahuje PNG obrázek. Uživatel, který bude zoomovat na svém mobilu nebo uživatel s Retina obrazovkou, bude tlačítko vidět rozmazané.</li>
<li>Pokud zakážeme načítání obrázků úplně, stane se takto navržené tlačítko neviditelné.</li>
<li>Protože je použitý <code>&lt;div&gt;</code> element namísto <code>&lt;button&gt;</code>, nebude možné udělat na tlačítko focus pomocí TAB klávesy.</li>
<li>Protože textový popisek tlačítka je umístěný přímo v obrázku, zrakově postižení lidé nemají možnost jak zjistit, který popisek tlačítko obsahuje. Jejich čtečky danou informaci v HTML kódu nenajdou. Navíc takové tlačítko nelze přeložit do jiných jazyků. Tudíž ani uživatelé ze zahraničí, kteří neznají náš jazyk, nebudou schopni daný web používat.</li>
</ul>
<p>Na tvorbu tlačítka a možné problémy je třeba nahlížet z různých perspektiv. V knize je potřeba podobného uvažování neustále opakována. Vždy je vše vysvětleno na konkrétních praktických ukázkách.</p>
<h2>Ať jsi začátečník nebo pokročilý kodér, určitě se dozvíš něco nového</h2>
<p>Když jsem zvažoval, zda tuto knihu vůbec objednat, tak jsem prvně trochu váhal. Říkal jsem si: &#8222;<em>Tvorbou webů se zabývám již deset let a za tu dobu člověk posbírá veliké množství zkušeností. Přinese mně tato kniha něco nového?</em>&#8220; Navíc se snažím pečlivěji vybírat, do čeho investuji svůj volný čas. Co jsem rozhodně něchtěl, je dokola pročítat základní teorii. To považuji za problém i u spousty článků nebo přednášek, na které na internetu narážím &#8211; málo konkrétních ukázek, spousta teorie a konceptů. Naopak zbožňuji a vyhledávám připadové studie &#8211; jdou přímo k věci a na konkrétních ukázkách se toho nejvíce naučím.</p>
<p>Potěšilo mě, když jsem zjistil, že kniha je doslova napěchována praktickými ukázkami. Obsahuje spoustu komponent a připravených ukázek kódu, které můžete rovnou použít v konkrétních situacích.</p>
<p>Nemusíte mít obavu, že se budete učit vytvářet pouze základní věci, jako tlačítka nebo odkazy. Na své si přijde jak začátečník, tak i pokročilý kodér. Kniha z kraje zmiňuje, jak zapisovat správně např. HTML dokument nebo titulek stránky. Důraz se klade opět na přístupnost. Pokročilý čtenář může tento text jen prolétnout a zpytovat své svědomí, zda skutečně daná doporučení dodržuje.</p>
<p>Po několika základních kapitolách přicházejí na řadu pokročilejší techniky. Dozvíte se tak například:</p>
<ul>
<li>jak správně vytvářet přístupné navigace</li>
<li>jak vytvářet SVG ikonky, které nesou sémantickou informaci</li>
<li>jak vytvářet správně formuláře</li>
<li>jak vytvářet jejich validační hlášky způsobem, abychom správně informovali i uživatele se zrakovým postižením použivající čtečku</li>
</ul>
<p>Podobných oblastí, kterým se kniha věnuje, je monohem více.</p>
<h2>Oblasti, kterým se kniha věnuje</h2>
<p>Obsah knihy lze rozdělit do následujících kapitol:</p>
<ol>
<li>Dokument</li>
<li>Odstavec</li>
<li>Jak tvořit blogové články?</li>
<li>Navigace</li>
<li>Menu tlačítko</li>
<li>Inkluzivní prototypování</li>
<li>Jak tvořit seznamy produktů?</li>
<li>Jak vytvářet přístupné filtry?</li>
<li>Registrační formuláře</li>
<li>Test-Driven-Development při tvorbě frontendu</li>
</ol>
<p><img class="alignnone size-full wp-image-2587 aligncenter" alt="inclusive-design-patterns-21-opt" src="http://www.martinpesout.cz/wp-content/uploads/2016/12/inclusive-design-patterns-21-opt.jpg" width="660" height="574" /></p>
<h2>Co bylo pro mě největším přínosem?</h2>
<p>Nejvíce mě překvapilo, jak jsou jednotlivé příklady v knize dávány do spojitosti s použitelností pro zrakově postižené uživatele. Až díky jejich čtečkám obrazovky si dokážeme uvědomit, zda poskytujeme správné sémantické informace. Základní principy jsem znal. Nikdy mně ale nenapadlo, že je třeba použít speciálního přístupu např. při zobrazení validačních hlášek nebo v případě, že používáme &#8222;preloadery&#8220;. V této oblasti jsem získal řadu cenných informací.</p>
<p>V čase, kdy píšu tento článek, patří <strong>Inclusive Design Patterns</strong> mezi nejzajímavější knihy z oblasti frontendu, které jsou na trhu. <a href="https://shop.smashingmagazine.com/products/inclusive-design-patterns" target="_blank">K dispozici je na webu Smashing Magazine</a>, kde je možné pořídit tištěnou nebo jen elektronickou verzi.</p>
<div class="w-actionbox color_alternate controls_aside"><div class="w-actionbox-h"><div class="w-actionbox-text"><h3>Novinky ze světa front-endu</h3><p>Pokud vás zajímají další novinky ze světa front-endu, můžete sledovat můj profil na Twitteru</p></div><div class="w-actionbox-controls at_right"><a class="w-actionbox-button g-btn type_default" href="https://twitter.com/martinpesout"><span>@martinpesout</span></a></div></div></div>
</div></div>]]></content:encoded>
			<wfw:commentRss>https://www.martinpesout.cz/kniha-inclusive-design-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak jsem vyzrál na nechtěný outline</title>
		<link>https://www.martinpesout.cz/jak-jsem-vyzral-na-nechteny-outline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>https://www.martinpesout.cz/jak-jsem-vyzral-na-nechteny-outline/#comments</comments>
		<pubDate>Tue, 08 Nov 2016 08:39:06 +0000</pubDate>
		<dc:creator>Martin Pešout</dc:creator>
				<category><![CDATA[Kódování]]></category>
		<category><![CDATA[Přístupnost]]></category>

		<guid isPermaLink="false">http://www.martinpesout.cz/?p=2380</guid>
		<description><![CDATA[Outline je jednoduchý, ale mocný nástroj, který se využívá především pro lepší přístupnost elementů na webu. I přesto, že se snažím psát přístupné weby a webové aplikace, nevyhnu se občas situacím, kdy musím jeho nechtěné styly zrušit. V následujícím článku]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><p><code>Outline</code> je jednoduchý, ale mocný nástroj, který se využívá především pro lepší přístupnost elementů na webu. I přesto, že se snažím psát přístupné weby a webové aplikace, nevyhnu se občas situacím, kdy musím jeho nechtěné styly zrušit. V následujícím článku bych rád ukázal, jak se dá na nechtěný <code>outline</code> vyzrát.</p>
<p><span id="more-2380"></span></p>
<h2>Co představuje CSS outline?</h2>
<p>Pěkná definice CSS vlastnostni <code>outline</code> je popsána na portálu <a href="https://css-tricks.com/almanac/properties/o/outline/">CSS-Tricks</a>. V kaskádových stylech používáme <code>outline</code> k vykreslení linky kolem vnějšího okraje elementu. Výsledek je hodně podobný použití klasického <a href="http://www.w3schools.com/css/css_border.asp">border</a> kolem nějakého prvku. Je zde ale několik rozdílů:</p>
<ol>
<li>Vždy vede kolem všech stran prvku. Nemůžeme tak definovat, že by měl <code>outline</code> vést pouze pod prvkem.</li>
<li>Není součástí box modelu, tudíž použití <code>outline</code> nemůže ovlivnit pozici samotného elementu nebo sousedních prvků. Co je to box model skvěle popisuje Martin Michálek na svém webu <a href="http://www.vzhurudolu.cz/prirucka/css3-box-sizing">vzhurudolu.cz</a>.</li>
</ol>
<p>Mezi další věci, které stojí za zmínku, je např. nemožnost nadefinovat <code>border-radius</code>. Což je logické protože se nejedná o klasický <code>border</code>. Nemusí se také jednat vždy o klasický obdélníkový tvar. Pokud <code>outline</code> jde kolem prvku, který obsahuje různé velikosti fontů, můžeme dostat i nepravidelný rámeček. Ukázku nepravidelného <code>outline</code> je možné vidět na <a href="http://codepen.io/martinpesout/pen/yVybxa">této ukázce</a>. Stačí jen udělat <code>:focus</code> na daný odkaz.<br />
<img class="alignnone size-full wp-image-2543" alt="test-element" src="http://www.martinpesout.cz/wp-content/uploads/2016/11/test-element.png" width="395" height="103" /></p>
<h2>Využití na webu</h2>
<p>Díky tomu, že <code>outline</code> není součástí box modelu, neovlivní nám jeho používání už definované CSS styly. Pokud to srovnáme s klasickým rámečkem <code>border</code>, tak jeho použití nám může měnit výslednou šířku a výšku elementu. Pokud vezmeme čisté HTML bez jakýchkoliv CSS stylů, tak zde je vlastnost <code>outline</code> použita pro zlepšení přístupnosti na webu. Poskytuje vizuální zpětnou vazbu pro aktuálně vybraný prvek na stránce. Na následujícím obrázku je ukázka aktivního formulářového políčka:</p>
<p><img class="alignnone size-full wp-image-2542" alt="focus" src="http://www.martinpesout.cz/wp-content/uploads/2016/11/focus.png" width="447" height="177" /></p>
<p>Vybrat nějaký prvek na stránce lze velice snadno. Stačí použít pro pohyb klávesnici namísto myši. Klávesa <code>TAB</code> je ideálním příkladem. Nemusí se vždy jednat jen o klasickou klávesnici vašeho PC. Při prohlížení webu na moderních TV, budeme pravděpodobně používat místo klávesnice dálkový ovladač. Ve všech těchto situacích potřebujeme vědět, který prvek je vybraný pro případné další interakce (psaní, kliknutí, přehrání videa, &#8230;).</p>
<p>V CSS lze na podobné prvky cílit pomocí tzv. <code>:focus</code> selektoru. Tento selektor je dostupný na každém HTML elementu, který může přijímat vstupy z klávesnice nebo jakékoli další vstupy od uživatele. Jedná se tedy o všechny odkazy, tlačítka, formulářové položky apod. Pokud se nám klasická &#8222;<code>outline</code> záře&#8220; nelíbí, můžeme ji následujícím zápisem zrušit:</p>
<pre class="brush: css; title: ; notranslate">
:focus {
  outline: 0;
}
</pre>
<p>Pokud toto ale uděláme, je třeba mít na paměti, že namísto <code>outline</code> musíme použít například <code>border</code> rámeček nebo jiný způsob zvýraznění. <strong>Nikdy nerušte styly pro <code>:focus</code> úplně!</strong> Dobrou přístupnost vaši uživatelé ocení. Pro více informací doporučuji <a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-focus-visible.html">doporučení přímo od W3C.org</a>.</p>
<h2>Proč mnoho webdesignerů ruší outline?</h2>
<p>Důvody bývají často jednoduché &#8211; ješitnost designera, časový pres nebo úplná neznalost přístupnosti na webu. Nehezká modrá záře, kterou vydává <code>outline</code>, často nezapadá do budoucí vize. Bývá proto &#8222;jednoduší&#8220; <code>outline</code> odstranit úplně. Alternativní zvýraznění se poté už designer neřeší a dodaný design pak s něčím takovým nepočítá.</p>
<p>Nutno dodat, že odebraní <code>outline</code> nemuselo být vždy záměrem frontendisty. Dnes již zastaralý <a href="http://meyerweb.com/eric/tools/css/reset/reset200802.css">Reset CSS</a> od Erica Meyerse rušil zvýraznění aktivních prvků úplně. V kódu byla sice poznámka <code>/* remember to define focus styles! */</code>, jenže ne každý si toho všiml. Novější řešení jako <a href="https://necolas.github.io/normalize.css/">Normalize.css</a> nebo <a href="http://v4-alpha.getbootstrap.com/content/reboot/">Reboot</a> tímto neduhem už netrpí.</p>
<h2>Proč já ruším outline?</h2>
<p>Napřipadám si jako ješitný designer, i znám základy dobré přístupnosti na webu. Poslední léta se soustředím převážně na vývoj webových aplikací a zde (možná ještě více než na webu) nastávají situace, kdy uživatel střídá myš i klávesnici. Ať chcete nebo ne, dříve nebo později se dostanete do situace, kdy potřebujete zrušit nechtěný <code>outline</code>, který občas někde vyskočí. Chtěl bych vám ukázat jednoduchý trik, jak lze zrušit <code>outline</code> pouze v některých případech a neohrozit přitom přistupnost samotného webu.</p>
<p>Rešení jsem našel v drobné JS knihovně <a href="https://github.com/ten1seven/what-input">What Input?</a>, která sleduje všechny vstupy uživatele na webu. Na základě toho přidává k HTML tagu <code>&lt;head&gt;</code> další atributy a neustále mění jejich hodnoty, podle toho, co uživatel na webu momentálně dělá. Výsledek pak vypadá nějak takto:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!doctype html&gt;
&lt;html class=&quot;whatinput-types-initial whatinput-types-mouse whatinput-types-keyboard&quot; lang=&quot;en&quot; data-whatinput=&quot;keyboard&quot; data-whatintent=&quot;mouse&quot;&gt;
&lt;head&gt;
</pre>
<p>Za zmínku stojí tyto přidané atributy:</p>
<ul>
<li><code>data-whatinput</code> - hodnota tohoto atributu se mění v závislosti na přímých vstupech od uživatele. Může nabývat hodnot <em>mouse</em>, <em>keyboard</em> a <em>touch</em>.</li>
<li><code>data-whatintent</code> &#8211; hodnota tohoto se mění v závislosti na nepřímých vstupech od uživatele.</li>
</ul>
<p>Když uživatel píše text do formulářového políčka, budou mít oba atributy hodnotu <em>keyboard</em>. Jakmile však pohneme myší bez kliknutí, změní se hodnota atributu <code>data-whatintent</code> na <em>mouse</em>. A to je celé. Na tyto atributy můžeme pak reagovat v CSS stylech.</p>
<pre class="brush: css; title: ; notranslate">
/* výchozí :focus styl před tím než se načte knihovna WhatInput */
:focus {

}

/* výchozí styl po spuštění WhatInput, ale před jakoukoliv jinou interakcí */
[data-whatinput=&quot;initial&quot;] :focus {
  outline: 2px dotted black;
}

/* focus pomocí myši */
[data-whatinput=&quot;mouse&quot;] :focus {
  outline-color: red;
}

/* focus pomocí klávesnice */
[data-whatinput=&quot;keyboard&quot;] :focus {
  outline-color: green;
}

/* focus pomocí dotykového zařízení */
[data-whatinput=&quot;touch&quot;] :focus {
  outline-color: blue;
}
</pre>
<p>Pokud se knihovna WhatInput z nějakého důvodu nenačte, máme stále jistotu, že výchozí zvýraznění aktivních prvků je k dispozici.</p>
<p>Nejvíce mi většinou vadí nechtěný <code>outline</code> vznikající při použití myši. Při využití knihovny WhatInput, se ho zbavím velice snadno:</p>
<pre class="brush: css; title: ; notranslate">
[data-whatintent=&quot;mouse&quot;] .prvek:focus {
  outline: 0;
}
</pre>
<p>Nyní mám jistotu, že se mi nechtěný <code>outline</code> neobjeví při pohybu myši. Jakmile použiji k pohybu po webu například <code>TAB</code> klávesu, změní se hodnota atributu na <code>data-whatintent="keyboard"</code> a potřebný <code>outline</code> pro lepší přístupnost je zpět.</p>
<p>V SASS jsem si definici podobného stylu zjednodušil použitím mixinu:</p>
<pre class="brush: css; title: ; notranslate">
@mixin disable-mouse-outline {
  [data-whatintent='mouse'] &amp; {
    outline: 0;
  }
}

/* použití u konkrétních problematických prvků */
.prvek:focus {
  @include disable-mouse-outline;
}
</pre>
<h2>Pár slov závěrem</h2>
<p>Zvýraznění aktivních prvků je na webu velice důležité. Designer znalý dobré přístupnosti na webu by nikdy neměl dopustit, že nepoznáme aktivní element. Osobně si myslím, že není nutné všude používát defaultní <code>outline</code>. Například u formulářových políček dávám často přednost <code>border</code> rámečku. Dá to jen více práce nachystat potřebné styly. Naopak pro klasické odkazy považuji použití výchozího <code>outline</code> za ideální řešení.</p>
<div class="w-actionbox color_alternate controls_aside"><div class="w-actionbox-h"><div class="w-actionbox-text"><h3>Novinky ze světa front-endu</h3><p>Pokud vás zajímají další novinky ze světa front-endu, můžete sledovat můj profil na Twitteru</p></div><div class="w-actionbox-controls at_right"><a class="w-actionbox-button g-btn type_default" href="https://twitter.com/martinpesout"><span>@martinpesout</span></a></div></div></div>
</div></div>]]></content:encoded>
			<wfw:commentRss>https://www.martinpesout.cz/jak-jsem-vyzral-na-nechteny-outline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Velikosti dotykových oblastí pod drobnohledem</title>
		<link>https://www.martinpesout.cz/velikosti-dotykovych-oblasti-pod-drobnohledem/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>https://www.martinpesout.cz/velikosti-dotykovych-oblasti-pod-drobnohledem/#comments</comments>
		<pubDate>Wed, 16 Mar 2016 13:32:12 +0000</pubDate>
		<dc:creator>Martin Pešout</dc:creator>
				<category><![CDATA[Použitelnost]]></category>
		<category><![CDATA[Přístupnost]]></category>
		<category><![CDATA[kódování]]></category>
		<category><![CDATA[použitelnost]]></category>

		<guid isPermaLink="false">http://www.martinpesout.cz/?p=2271</guid>
		<description><![CDATA[Zamýšleli jste se někdy nad tím, jak veliké mají být dotykové prvky, které máte umístěny na webu? Totiž ne každý element, který vytvoříte, je snadno dostupný pro všechny uživatele. Kurzor myši je velice přesný a dokážete s ním zaměřit i]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Zamýšleli jste se někdy nad tím, jak veliké mají být dotykové prvky, které máte umístěny na webu? Totiž ne každý element, který vytvoříte, je snadno dostupný pro všechny uživatele. Kurzor myši je velice přesný a dokážete s ním zaměřit i poměrně malé oblasti. Situace se však změní, když použijete jiné zařízení a zkusíte web ovládat pomocí prstu na tabletu nebo na mobilním telefonu. Pojďme se společně podívat na doporučení, které nám dávají společnosti Google, Apple a Microsoft.<span id="more-2271"></span></p>
<p>Proč ale dát na rady zrovna těchto společností? Google stojí za vznikem operačního systému Android, Apple je tvůrcem iOS a Microsoft má svůj Windows (Phone). Jeden z těchto tří operačních systémů tvoří základ dnešních chytrých telefonů. Aby byla zajištěna dobrá použitelnost webů i na mobilních zařízeních, vydávají tyto společnosti doporučení, jak by měla vypadat ideální velikost dotykových oblastí.</p>
<h2>Dotykové oblasti podle Google</h2>
<p><a href="https://www.google.com/design/spec/layout/metrics-keylines.html#metrics-keylines-touch-target-size">Specifikace Google</a> doporučuje volit rozměry jednotlivých dotykových oblastí alespoň <strong>48 × 48 dp</strong> pro zachování ideální použitelnosti na dotykových zařízeních. Zároveň by měl být dodržen rozestup mezi více dotykovými prvky nejméně 8 dp. Rozměr 48 dp lze přirovnat fyzickému rozměru 9 mm v závisloti na typu displeje.</p>
<p>Jednotka <code>dp</code> je zkratkou pro <a href="https://www.google.com/design/spec/layout/units-measurements.html#units-measurements-density-independent-pixels-dp-">Density-independent pixel</a> &#8211; tzv. pixel nezávislý na hustotě displeje. Setkáme se s ní na zařízeních s operačním systémem Android a využijí ji především vývojáři Android aplikaci. Používá se pro jednotné zobrazení elementů na obrázovkách s rozdílnou hustotou. Pokud však jako frontendista píšete čistě jen CSS, nemusíte si s <code>dp</code> vůbec lámat hlavu. Rovnout můžete místo jednotky <code>dp</code> uváděd <code>px</code>.</p>
<p>Na následujícím obrázku můžete vidět postupně avatar, ikonku a tlačítko. Dotykové oblasti jsou ve všech případech vysoké 48 dp. I v situaci, kdy je tlačítko nadesignované na výšku pouhých 36 dp, měla by být velikost dotykové oblasti podle doporučení Google vysoká alespoň těch zmíněných 48 dp.</p>
<p style="text-align: left;"><img class="alignnone  wp-image-2307" alt="touch-target" src="http://www.martinpesout.cz/wp-content/uploads/2016/01/touch-target.png" width="228" height="501" /></p>
<h2>Dotykové oblasti podle Apple</h2>
<p><a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LayoutandAppearance.html">Apple doporučuje</a> volit minimální rozměr dotykových oblástí o velikostech <strong>44 × 44 bodů</strong>. Původně byl tento údaj uváděn v pixelech. Rozměr 44 × 44 pixelů je navržen tak, aby odpovídal ideální velikosti dotykové oblasti na starších iPhone s displejem 3.5&#8220; o rozlišení 320 × 480 px (164ppi). Jakmile však přišel Retina displej, který má dvojnásobnou hustotu (326ppi), upravil Apple zároveň své specifikace a uvádí všude body namísto pixelů. I zde však platí pravidlo, že pokud kódujete pouze CSS styly, můžete všude automaticky uvádět pixely.</p>
<h2>Dotykové oblasti podle Microsoftu</h2>
<p><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465326.aspx">Specifikace Microsoftu</a> doporučuje volit minimální rozměr dotykových oblastí o velikostech 9 mm nebo větší. To odpovídá rozměru <strong>48 x 48 pixelů</strong> (na displeji s hustotou pixelů 133ppi). Vyloženě pak upozorňuje, ať se vyvarujete používání oblastí menších než 7 mm. Pokud máte více dotykových prvků vedle sebe, měl by být dodržen rozestup alespoň 2 mm.</p>
<h2>Má cenu řešit až takové detaily?</h2>
<p>Velikost dotykových oblastí se v dnešní době opravdu nevyplácí podceňovat. Malá tlačítka nejvíce překvapí uživatele přistupujícího z mobilního zařízení. Není nic otravnějšího než zkoušet třikrát kliknout na položku v menu a až na třetí pokus se dostat na požadovanou stránku. Jiný problém může nastat v případě, kdy se budete snažit vměstnat více dotykových oblastí vedle sebe. Trefit se pak do správného místa, nemusí být zrovna snadné.</p>
<p>Závěrem bych možná jen zmínil, že když jsem velikosti dotykových oblastí testoval na svých zařízeních, začínal jsem mít znatelné problémy až u rozměrů pod 40 pixelů. Proto bych nedoporučoval volit rozměry menší. Větší oblasti rozhodně přispějí jen k lepší použitelnosti a to ocení především budoucí návštěvníci webu.</p>
<h2>Zdroje</h2>
<ul>
<li><a href="https://www.google.com/design/spec/layout/metrics-keylines.html#metrics-keylines-touch-target-size">Google Design &#8211; Metrics &amp; keylines</a></li>
<li><a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LayoutandAppearance.html">iOS Developer Library &#8211; Adaptivity and Layout</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465326.aspx">Microsoft &#8211; Guidelines for targeting</a></li>
</ul>
<div class="w-actionbox color_alternate controls_aside"><div class="w-actionbox-h"><div class="w-actionbox-text"><h3>Novinky ze světa front-endu</h3><p>Pokud vás zajímají další novinky ze světa front-endu, můžete sledovat můj profil na Twitteru</p></div><div class="w-actionbox-controls at_right"><a class="w-actionbox-button g-btn type_default" href="https://twitter.com/martinpesout"><span>@martinpesout</span></a></div></div></div>
</div></div>]]></content:encoded>
			<wfw:commentRss>https://www.martinpesout.cz/velikosti-dotykovych-oblasti-pod-drobnohledem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
