{"id":3142,"date":"2022-11-15T10:09:22","date_gmt":"2022-11-15T10:09:22","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/4-common-web-accessibility-issues-to-know\/"},"modified":"2026-03-09T13:10:53","modified_gmt":"2026-03-09T13:10:53","slug":"problem-kontrastniho-pomeru","status":"publish","type":"post","link":"https:\/\/thecodest.co\/cs\/blog\/contrast-ratio-issue\/","title":{"rendered":"4 b\u011b\u017en\u00e9 probl\u00e9my s p\u0159\u00edstupnost\u00ed webu, kter\u00e9 je t\u0159eba zn\u00e1t"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Probl\u00e9m kontrastn\u00edho pom\u011bru<\/h2>\n\n\n\n<p>Nej\u010dast\u011bj\u0161\u00edm probl\u00e9mem s p\u0159\u00edstupnost\u00ed, se kter\u00fdm jsem se v pr\u016fb\u011bhu let setkal, je. <b>probl\u00e9m s kontrastem a p\u0159\u00edstupnost\u00ed barev<\/b>, \u0161patn\u00fd kontrastn\u00ed pom\u011br zt\u011b\u017euje viditelnost obsahu str\u00e1nky, co\u017e je pro u\u017eivatele, v\u010detn\u011b t\u011bch se zrakov\u00fdm posti\u017een\u00edm, velmi \u0161kodliv\u00e9. <\/p>\n\n\n\n<p>Kontrast je m\u011b\u0159\u00edtkem rozd\u00edlu ve vn\u00edman\u00e9 \"sv\u00edtivosti\" nebo jasu dvou barev, nap\u0159\u00edklad rozd\u00edlu mezi barvou pozad\u00ed a barvou pop\u0159ed\u00ed obsahu str\u00e1nky. Pod\u00edvejme se na tento naviga\u010dn\u00ed panel.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/01-navbar.png\" alt=\"naviga\u010dn\u00ed&lt;em&gt;pruh&lt;\/em&gt;se&lt;em&gt;zelen\u00fdmi&lt;\/em&gt;n\u00e1pisy\" title=\"P\u0159\u00edklad naviga\u010dn\u00edho panelu \"\/><\/figure>\n\n\n\n<p>\u0158ekn\u011bme, \u017ee se va\u0161emu klientovi tato zelenkav\u00e1 barva opravdu l\u00edb\u00ed a pova\u017euje ji za \u00fa\u017easnou, ale je zde probl\u00e9m s kontrastem. M\u00e1me&nbsp;<code>#FFFFFF<\/code> pozad\u00ed s&nbsp;<code>#83A94C<\/code>&nbsp;barva textu, co\u017e vede ke kontrastn\u00edmu pom\u011bru 2,71:1, kter\u00fd je mnohem ni\u017e\u0161\u00ed ne\u017e minim\u00e1ln\u00ed hodnota.&nbsp;<strong>4.5:1<\/strong>&nbsp;pot\u0159ebn\u00e9. Pro zji\u0161t\u011bn\u00ed tohoto probl\u00e9mu m\u00e1me n\u011bkolik \u0159e\u0161en\u00ed: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Pou\u017eijte online n\u00e1stroj pro kontrolu kontrastu, jako je&nbsp;<a href=\"https:\/\/webaim.org\/resources\/contrastchecker\/)\" rel=\"nofollow\">Kontrola kontrastu Webaim<\/a>, kter\u00fd vypo\u010d\u00edt\u00e1 kontrastn\u00ed pom\u011br a poskytne v\u00e1m informace o tom.&nbsp;<strong>P\u0159edat<\/strong>&nbsp;nebo&nbsp;<strong>Selh\u00e1n\u00ed<\/strong>&nbsp;stupe\u0148.<\/li>\n\n\n\n<li>Pou\u017eijte jedno z mnoha roz\u0161\u00ed\u0159en\u00ed pro kontrolu kontrastu v prohl\u00ed\u017ee\u010di, nap\u0159:&nbsp;<a href=\"https:\/\/chrome.google.com\/webstore\/detail\/wcag-color-contrast-check\/plnahcmalebffmaghcpcmpaciebdhgdf?hl=en)\" rel=\"nofollow\">Kontrola kontrastu barev WCAG<\/a>.<\/li>\n\n\n\n<li>Vyzkou\u0161ejte integrovanou kontrolu kontrastu v prohl\u00ed\u017ee\u010di. Chcete-li jej pou\u017e\u00edt v prohl\u00ed\u017ee\u010di Google Chrome, otev\u0159ete n\u00e1stroje pro v\u00fdvoj\u00e1\u0159e, prohl\u00e9dn\u011bte si c\u00edlov\u00fd prvek (nap\u0159. odkaz Home na\u0161eho naviga\u010dn\u00edho panelu), p\u0159ejd\u011bte na vlastnost CSS color a kliknut\u00edm na obd\u00e9ln\u00edk barvy otev\u0159ete n\u00e1stroj pro v\u00fdb\u011br barvy, v doln\u00ed \u010d\u00e1sti se zobraz\u00ed hodnota kontrastn\u00edho pom\u011bru, rozbalte ji a z\u00edskejte dal\u0161\u00ed podrobnosti. Pro Firefox je postup naprosto stejn\u00fd, jen v lev\u00e9m doln\u00edm rohu n\u00e1stroje pro v\u00fdb\u011br barev je zobrazen mal\u00fd rozd\u00edl v pom\u011bru.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/02-chrome-color-picker.png\" alt=\"\u010dern\u00e9&lt;em&gt;pozad\u00ed&lt;\/em&gt;s&lt;em&gt;modr\u00fdm&lt;\/em&gt;k\u00f3dem\" title=\"p\u0159\u00edklad sb\u011bra\u010de chromu\"\/><\/figure>\n\n\n\n<p>Chcete-li z\u00edskat v\u00edce informac\u00ed o kontrastu, pod\u00edvejte se na tuto str\u00e1nku&nbsp;<a href=\"https:\/\/webaim.org\/articles\/contrast\/\" rel=\"nofollow\">\u010cl\u00e1nek o kontrastu a p\u0159\u00edstupnosti barev<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Probl\u00e9m s textem odkazu<\/h2>\n\n\n\n<p>Odkazy jsou d\u016fle\u017eitou sou\u010d\u00e1st\u00ed <a href=\"https:\/\/thecodest.co\/cs\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> v dne\u0161n\u00ed dob\u011b, a proto je jejich zp\u0159\u00edstupn\u011bn\u00ed velmi d\u016fle\u017eit\u00e9. Odkaz mus\u00ed d\u00e1vat smysl a informovat u\u017eivatele o jeho kontextu, tak\u017ee neinformativn\u00ed odkaz s textem typu p\u0159e\u010dt\u011bte si v\u00edce, klikn\u011bte zde, zkontrolujte podrobnosti nen\u00ed p\u0159\u00edli\u0161 u\u017eite\u010dn\u00fd, tak\u017ee m\u00edsto p\u0159id\u00e1n\u00ed \"zkontrolujte podrobnosti\" pro <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/how-to-make-product\/\">produkt<\/a> podrobnosti, nap\u0159\u00edklad pou\u017eit\u00ed n\u00e1zvu produktu, jako je \"Mandaloriansk\u00e1 helma\", je lep\u0161\u00ed a informativn\u011bj\u0161\u00ed. Slova jako nap\u0159. <code>klikn\u011bte zde<\/code> nebo <code>v\u00edce o<\/code> lze vynechat, proto\u017ee odkaz je standardn\u011b klikac\u00ed a n\u011bco jako \"v\u00edce o dne\u0161n\u00edch zpr\u00e1v\u00e1ch\" lze zkr\u00e1tit na \"dne\u0161n\u00ed zpr\u00e1vy\". Neexistuje \u017e\u00e1dn\u00e9 zvl\u00e1\u0161tn\u00ed pravidlo nebo omezen\u00ed t\u00fdkaj\u00edc\u00ed se d\u00e9lky odkazu, tzv. <b>odkaz mus\u00ed b\u00fdt \u010diteln\u00fd<\/b> a dostate\u010dn\u011b dlouh\u00fd, aby bylo mo\u017en\u00e9 dob\u0159e popsat jeho \u00fa\u010del.<\/p>\n\n\n\n<p>Obr\u00e1zky jako odkazy jsou \u0161iroce pou\u017e\u00edvan\u00fdm vzorem, tak\u017ee se mus\u00ed \u0159\u00eddit stejn\u00fdmi pravidly, o kter\u00fdch jsme hovo\u0159ili v\u00fd\u0161e. Atribut alt obr\u00e1zku bude hr\u00e1t roli textu odkazu a bude ohla\u0161ov\u00e1n \u010dte\u010dkami obrazovky. P\u0159i zach\u00e1zen\u00ed s obr\u00e1zky jako odkazy existuje v\u00edce sc\u00e9n\u00e1\u0159\u016f, pokud je obr\u00e1zek jedin\u00fdm obsahem odkazu, pak mus\u00ed m\u00edt atribut alt, pokud je v odkazu n\u011bjak\u00fd text a obr\u00e1zek, pak m\u016f\u017eeme atribut alt vynechat, zde je n\u011bkolik p\u0159\u00edklad\u016f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\r&lt;a href=&quot;\/notifications&quot;&gt;\r\n  &lt;img src=&quot;\/img\/notification.png&quot; alt=&quot;Ozn&aacute;men&iacute;&quot;&gt;\r\n&lt;\/a&gt;<\/code><\/pre>\n\n\n\n<p>Pod\u00edvejte se na n\u011bkter\u00e9 odkazy zde a p\u0159e\u010dt\u011bte si o p\u0159\u00edstupnosti odkaz\u016f:<a href=\"https:\/\/webaim.org\/techniques\/hypertext\/link_text\" rel=\"nofollow\">Text a vzhled odkazu<\/a>, <a href=\"https:\/\/www.w3.org\/WAI\/tutorials\/images\/functional\/\" rel=\"nofollow\">Funk\u010dn\u00ed obr\u00e1zky<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Chyb\u011bj\u00edc\u00ed popisek vstupn\u00edho formul\u00e1\u0159e<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/03-form-inputs.png\" alt=\"input&lt;em&gt;labels&lt;\/em&gt;s&lt;em&gt;modr\u00fdm&lt;\/em&gt;tla\u010d\u00edtkem\" title=\"p\u0159\u00edklad vstupn\u00edch \u0161t\u00edtk\u016f \"\/><\/figure>\n\n\n\n<p>V\u0161ichni jsme se ji\u017e setkali s formul\u00e1\u0159ov\u00fdmi vstupy bez popisku a pouze se z\u00e1stupn\u00fdm znakem, kter\u00fd popisuje \u00fa\u010del vstupu. Prvn\u00ed pozn\u00e1mka je, \u017ee jakmile u\u017eivatel vypln\u00ed v\u0161echny vstupy a z\u00e1stupn\u00e9 symboly ji\u017e nebudou v dohledu, nebudeme m\u00edt \u017e\u00e1dn\u00fd vizu\u00e1ln\u00ed kontext o \u00fa\u010delu vstup\u016f, ale nechme <a href=\"https:\/\/thecodest.co\/cs\/blog\/why-us-companies-are-opting-for-polish-developers\/\">n\u00e1s<\/a> zam\u011b\u0159te se na p\u0159\u00edstupnost. <\/p>\n\n\n\n<p>P\u0159idru\u017een\u00ed&nbsp;<code>\u0161t\u00edtek<\/code>&nbsp;na vstup n\u00e1m p\u0159in\u00e1\u0161\u00ed dv\u011b hlavn\u00ed v\u00fdhody: \u010dte\u010dka obrazovky p\u0159e\u010dte \u0161t\u00edtek, kdy\u017e je u\u017eivatel zam\u011b\u0159en na vstup formul\u00e1\u0159e, a kdy\u017e je na \u0161t\u00edtek kliknuto nebo se ho dotknete, prohl\u00ed\u017ee\u010d p\u0159ed\u00e1 zam\u011b\u0159en\u00ed na p\u0159idru\u017een\u00fd vstup. Jednoduch\u00fdm \u0159e\u0161en\u00edm takov\u00e9 situace je prost\u011b p\u0159idat \u0161t\u00edtky n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">    K\u0159estn\u00ed jm\u00e9no\n\n    \n  \n\n    P\u0159\u00edjmen\u00ed\n\n    \n  \n\n    E-mail\n\n    \n  \n\n    Odeslat\n  \n\n```<\/code><\/pre>\n\n\n\n<p>To je v\u0161e, v\u0161echny vstupy maj\u00ed p\u0159i\u0159azen\u00e9 \u0161t\u00edtky, tak\u017ee jsou p\u0159\u00edstupn\u00e9 v\u0161em. M\u016f\u017eeme dokonce odstranit z\u00e1stupn\u00e9 symboly, abychom se vyhnuli duplicitn\u00edmu \u00fa\u010delu vstupu, ale v\u0161ichni v\u00edme, \u017ee re\u00e1ln\u00e9 sc\u00e9n\u00e1\u0159e nejsou tak snadno \u0159e\u0161iteln\u00e9, pr\u00e1v\u011b jste obdr\u017eeli n\u00e1vrh, kter\u00fd m\u00e1 tyto vstupy formul\u00e1\u0159e bez \u0161t\u00edtk\u016f, a klient nechce tuto \u010d\u00e1st zm\u011bnit. Prvn\u00edm \u0159e\u0161en\u00edm, kter\u00e9 v\u00e1s napadne, je pou\u017e\u00edt tzv.&nbsp;<code>zobrazen\u00ed: \u017e\u00e1dn\u00e9;<\/code>&nbsp;nebo&nbsp;<code>viditelnost: skryt\u00e1;<\/code>&nbsp;k na\u0161im \u0161t\u00edtk\u016fm, co\u017e je skryje, ale st\u00e1le tam jsou, \u017ee? Tyto vlastnosti skr\u00fdvaj\u00ed prvky nejen na obrazovce, ale tak\u00e9 pro u\u017eivatele \u010dte\u010dky obrazovky, tak\u017ee to n\u00e1\u0161 probl\u00e9m nevy\u0159e\u0161\u00ed.<\/p>\n\n\n\n<p>M\u016f\u017eeme pou\u017e\u00edt&nbsp;<strong>vzor klipu<\/strong>&nbsp;k vy\u0159e\u0161en\u00ed tohoto probl\u00e9mu. T\u00edmto zp\u016fsobem obsah vizu\u00e1ln\u011b skryjeme, ale z\u00e1rove\u0148 ho poskytneme \u010dten\u00e1\u0159\u016fm obrazovky. Vytvo\u0159\u00edme n\u00e1sleduj\u00edc\u00ed CSS&nbsp;<code>pouze pro sr<\/code>&nbsp;a pou\u017e\u00edt ji na v\u0161echny \u0161t\u00edtky:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\"><code> .sr-only:not(:focus):not(:active) {\n   clip: rect(0 0 0 0);\n   clip-path: inset(50%);\n   height: 1px;\n   overflow: hidden;\n   position: absolute;\n   white-space: nowrap;\n   width: 1px;\n }\n<\/code><\/code><\/pre>\n\n\n\n<p>T\u00edm se na\u0161e \u0161t\u00edtky skryj\u00ed, budou dostupn\u00e9 pro \u010dte\u010dky obrazovky a budou odpov\u00eddat na\u0161emu designu. Str\u00e1nka&nbsp;<code>:not(:focus):not(:active)<\/code>&nbsp;pseudot\u0159\u00edda zabra\u0148uje zaost\u0159iteln\u00fdm prvk\u016fm, jako jsou nap\u0159.&nbsp;<code>a<\/code>,&nbsp;<code>tla\u010d\u00edtko<\/code>,&nbsp;<code>vstup<\/code>&nbsp;p\u0159ed skryt\u00edm p\u0159i p\u0159ij\u00edm\u00e1n\u00ed zam\u011b\u0159en\u00ed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u017d\u00e1dn\u00fd indik\u00e1tor zaost\u0159en\u00ed<\/h2>\n\n\n\n<p>Kdysi d\u00e1vno jsem to ud\u011blal v glob\u00e1ln\u00edm souboru styl\u016f CSS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">* {\noutline: none; \/* stra\u0161n\u00e1 chyba *\/\n}<\/code><\/pre>\n\n\n\n<p>Kolem roku 2020 jsem si v\u0161iml, \u017ee se na vstupech formul\u00e1\u0159e v prohl\u00ed\u017ee\u010di Google Chrome objevuj\u00ed \u010dern\u00e9 okraje, kdy\u017e je na n\u011b zaost\u0159eno, nebo na tla\u010d\u00edtk\u00e1ch, kdy\u017e se do nich dostanete na kart\u011b - to bylo opravdu divn\u00e9, proto\u017ee jsem tomu tehdy nerozum\u011bl, po n\u011bjak\u00e9m v\u00fdzkumu jsem zjistil, \u017ee je to kv\u016fli vlastnosti CSS outline, tak\u017ee odstran\u011bn\u00ed tohoto \"probl\u00e9mu\" pro m\u011b vy\u0159e\u0161ilo.<\/p>\n\n\n\n<p>V t\u00e9 dob\u011b jsem netu\u0161il, jak se to m\u00e1 spr\u00e1vn\u011b d\u011blat.  Pot\u00e9, co jsem trochu p\u00e1tral po tom, co a jak je s t\u00edmto nov\u00fdm v\u00fdchoz\u00edm nastaven\u00edm, jsem zjistil, \u017ee obrys je indik\u00e1torem zam\u011b\u0159en\u00ed prvku a v p\u0159\u00edpad\u011b jeho odstran\u011bn\u00ed mus\u00ed b\u00fdt zaji\u0161t\u011bno zjevn\u00e9 stylizov\u00e1n\u00ed zam\u011b\u0159en\u00ed, co\u017e je v podstat\u011b to, co jsem d\u011blal, pova\u017eov\u00e1no za \u0161patn\u00fd postup. Indik\u00e1tory zam\u011b\u0159en\u00ed si m\u016f\u017eete upravit podle sv\u00e9ho uv\u00e1\u017een\u00ed, ale jejich \u00fapln\u00e9 odstran\u011bn\u00ed z webu je velk\u00fdm probl\u00e9mem pro p\u0159\u00edstupnost. P\u0159izp\u016fsoben\u00ed stylov\u00e1n\u00ed zam\u011b\u0159en\u00ed prvku je nap\u0159\u00edklad pom\u011brn\u011b snadn\u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\"><code> a:focus {\n   outline: 4px solid #ee7834;\n   outline-offset: 4px;\n }<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">N\u00e1stroje pro zp\u0159\u00edstupn\u011bn\u00ed<\/h2>\n\n\n\n<p>Kontrola v\u0161ech probl\u00e9m\u016f, o kter\u00fdch jsme hovo\u0159ili, m\u016f\u017ee b\u00fdt velmi n\u00e1ro\u010dn\u00e1, zejm\u00e9na s v\u011bdom\u00edm, \u017ee je t\u0159eba pokr\u00fdt je\u0161t\u011b mnoho dal\u0161\u00edch v\u011bc\u00ed t\u00fdkaj\u00edc\u00edch se p\u0159\u00edstupnosti, tak\u017ee abychom se s p\u0159\u00edstupnost\u00ed vypo\u0159\u00e1dali, m\u00e1me 2 skv\u011bl\u00e1 roz\u0161\u00ed\u0159en\u00ed prohl\u00ed\u017ee\u010de.<\/p>\n\n\n\n<p><a href=\"https:\/\/wave.webaim.org\/\" rel=\"nofollow\">N\u00e1stroj pro hodnocen\u00ed WAVE<\/a> je sada hodnot\u00edc\u00edch n\u00e1stroj\u016f, kter\u00e1 n\u00e1m pom\u00e1h\u00e1 zp\u0159\u00edstupnit n\u00e1\u0161 webov\u00fd obsah. Je k dispozici v prohl\u00ed\u017ee\u010d\u00edch Google Chrome a Firefox. <\/p>\n\n\n\n<p>Vyzkou\u0161\u00edme si to na mal\u00e9 webov\u00e9 str\u00e1nce obsahuj\u00edc\u00ed naviga\u010dn\u00ed panel a vstup, kter\u00e9mu chyb\u00ed popisek, a uvid\u00edme, co n\u00e1m to vr\u00e1t\u00ed.Po instalaci roz\u0161\u00ed\u0159en\u00ed sta\u010d\u00ed kliknout na ikonu roz\u0161\u00ed\u0159en\u00ed, abychom ho mohli pou\u017e\u00edt.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/04-wave-errors.png\" alt=\"b\u00edl\u00e9&lt;em&gt;okno&lt;\/em&gt;s&lt;em&gt;\u0161ed\u00fdmi&lt;\/em&gt;d\u00edly\" title=\"p\u0159\u00edklad chyby vlny \"\/><\/figure>\n\n\n\n<p>Na kart\u011b Souhrn je zobrazena 1 chyba (chyb\u011bj\u00edc\u00ed popisek prvku formul\u00e1\u0159e), 2 chyby kontrastu a 1 upozorn\u011bn\u00ed (chyb\u011bj\u00edc\u00ed struktura nadpisu), jak vid\u00edte, v\u00fdsledek je velmi p\u0159ehledn\u00fd a podrobn\u00fd. Karta Podrobnosti zobraz\u00ed seznam v\u0161ech chyb, upozorn\u011bn\u00ed a prvk\u016f. M\u016f\u017eeme tak\u00e9 interagovat p\u0159\u00edmo na str\u00e1nce kliknut\u00edm na tyto \u010derven\u00e9 obd\u00e9ln\u00edky a zkontrolovat popis a typ chyby.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.deque.com\/axe\/devtools\/\" rel=\"nofollow\">N\u00e1stroje Axe DevTools<\/a> je v\u00fdkonn\u00e1 a p\u0159esn\u00e1 sada n\u00e1stroj\u016f pro p\u0159\u00edstupnost. Je k dispozici v prohl\u00ed\u017ee\u010d\u00edch Google Chrome i Firefox. Po instalaci roz\u0161\u00ed\u0159en\u00ed budeme muset otev\u0159\u00edt n\u00e1stroje pro v\u00fdvoj\u00e1\u0159e prohl\u00ed\u017ee\u010de, p\u0159ej\u00edt na kartu axe DevTools a kliknout na mo\u017enost Skenovat v\u0161echny m\u00e9 str\u00e1nky.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/05-axe-errors.png\" alt=\"DevTools&lt;em&gt;okno&lt;\/em&gt;s&lt;em&gt;\u010dern\u00fdmi&lt;\/em&gt;\u0161ed\u00fdmi_\u00faseky\" title=\"p\u0159\u00edklad chyb sekery \"\/><\/figure>\n\n\n\n<p>M\u016f\u017eete vid\u011bt, \u017ee Axe DevTools hl\u00e1s\u00ed stejn\u00e9 probl\u00e9my s hodnot\u00edc\u00edm n\u00e1strojem WAVE, co\u017e jsou probl\u00e9my s kontrastem, chyb\u011bj\u00edc\u00edm prvkem formul\u00e1\u0159e a chyb\u011bj\u00edc\u00edm prvkem nadpisu, a dokonce n\u00e1m poskytl n\u011bkolik osv\u011bd\u010den\u00fdch postup\u016f, kter\u00e9 bychom m\u011bli dodr\u017eovat.<\/p>\n\n\n\n<p>Dal\u0161\u00edm zp\u016fsobem, jak otestovat p\u0159\u00edstupnost, je pou\u017e\u00edt \u010dte\u010dku obrazovky a otestovat s n\u00ed sv\u00e9 webov\u00e9 str\u00e1nky.K dispozici je mnoho \u010dte\u010dek obrazovky, jmenujme alespo\u0148 n\u011bkter\u00e9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.nvaccess.org\/\" rel=\"nofollow\">NVDA<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/support.apple.com\/guide\/voiceover\/welcome\/mac\" rel=\"nofollow\">VoiceOver<\/a> je k dispozici v za\u0159\u00edzen\u00edch macOs.<\/li>\n\n\n\n<li><a href=\"https:\/\/help.gnome.org\/users\/orca\/stable\/introduction.html.en\" rel=\"nofollow\">Orca<\/a> je bezplatn\u00e1 \u010dte\u010dka obrazovky s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem pro Linux.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Souhrn<\/h2>\n\n\n\n<p>V tomto \u010dl\u00e1nku jsme se sezn\u00e1mili s n\u011bkter\u00fdmi b\u011b\u017en\u00fdmi probl\u00e9my s p\u0159\u00edstupnost\u00ed webu, zp\u016fsoby jejich \u0159e\u0161en\u00ed a skv\u011bl\u00fdmi n\u00e1stroji pro testov\u00e1n\u00ed p\u0159\u00edstupnosti webu. O p\u0159\u00edstupnosti prvk\u016f, jako jsou dialogov\u00e1 okna, akordeony a karusely, je toho je\u0161t\u011b hodn\u011b, ale jak jste vid\u011bli v tomto \u010dl\u00e1nku, existuje spousta dokumentace a n\u00e1stroj\u016f, kter\u00e9 v\u00e1m s p\u0159\u00edstupnost\u00ed pomohou.<\/p>\n\n\n\n<p>N\u011bkolik kl\u00ed\u010dov\u00fdch bod\u016f, kter\u00e9 je t\u0159eba si zapamatovat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V\u017edy zkontrolujte kontrastn\u00ed pom\u011br.<\/li>\n\n\n\n<li>Odkazy v\u017edy opat\u0159ete informativn\u00edm obsahem.<\/li>\n\n\n\n<li>K formul\u00e1\u0159ov\u00e9mu prvku mus\u00ed b\u00fdt p\u0159i\u0159azen popisek.<\/li>\n\n\n\n<li>Je t\u0159eba zajistit z\u0159ejm\u00e9 zam\u011b\u0159en\u00ed stylingu.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/thecodest.co\/careers\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/become_a_part_of_the_codest.png\" alt=\"kari\u00e9ra v codest\"\/><\/a><\/figure>","protected":false},"excerpt":{"rendered":"<p>Web denn\u011b pou\u017e\u00edvaj\u00ed miliony r\u016fzn\u00fdch lid\u00ed a jedn\u00edm z na\u0161ich hlavn\u00edch c\u00edl\u016f jako v\u00fdvoj\u00e1\u0159\u016f je zp\u0159\u00edstupnit web v\u0161em. Tento \u010dl\u00e1nek p\u0159edstav\u00ed n\u011bkter\u00e9 b\u011b\u017en\u00e9 probl\u00e9my s p\u0159\u00edstupnost\u00ed webu a zp\u016fsoby jejich \u0159e\u0161en\u00ed.<\/p>","protected":false},"author":2,"featured_media":3143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3142","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>4 Common Web Accessibility Issues to Know - The Codest<\/title>\n<meta name=\"description\" content=\"A guide to common web accessibility issues developers should know, with practical tips to improve usability for users with disabilities.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/cs\/blog\/problem-kontrastniho-pomeru\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"4 Common Web Accessibility Issues to Know\" \/>\n<meta property=\"og:description\" content=\"A guide to common web accessibility issues developers should know, with practical tips to improve usability for users with disabilities.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/cs\/blog\/problem-kontrastniho-pomeru\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-15T10:09:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T13:10:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"4 Common Web Accessibility Issues to Know\",\"datePublished\":\"2022-11-15T10:09:22+00:00\",\"dateModified\":\"2026-03-09T13:10:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/\"},\"wordCount\":1409,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/common_web_accessibility_issues1.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"cs-CZ\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/\",\"name\":\"4 Common Web Accessibility Issues to Know - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/common_web_accessibility_issues1.png\",\"datePublished\":\"2022-11-15T10:09:22+00:00\",\"dateModified\":\"2026-03-09T13:10:53+00:00\",\"description\":\"A guide to common web accessibility issues developers should know, with practical tips to improve usability for users with disabilities.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#breadcrumb\"},\"inLanguage\":\"cs-CZ\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/common_web_accessibility_issues1.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/common_web_accessibility_issues1.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/contrast-ratio-issue\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"4 Common Web Accessibility Issues to Know\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs-CZ\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs-CZ\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/cs\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"4 b\u011b\u017en\u00e9 probl\u00e9my s p\u0159\u00edstupnost\u00ed webu - The Codest","description":"Pr\u016fvodce b\u011b\u017en\u00fdmi probl\u00e9my p\u0159\u00edstupnosti webu, kter\u00e9 by m\u011bli v\u00fdvoj\u00e1\u0159i zn\u00e1t, s praktick\u00fdmi tipy pro zlep\u0161en\u00ed pou\u017eitelnosti pro u\u017eivatele se zdravotn\u00edm posti\u017een\u00edm.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/cs\/blog\/problem-kontrastniho-pomeru\/","og_locale":"cs_CZ","og_type":"article","og_title":"4 Common Web Accessibility Issues to Know","og_description":"A guide to common web accessibility issues developers should know, with practical tips to improve usability for users with disabilities.","og_url":"https:\/\/thecodest.co\/cs\/blog\/problem-kontrastniho-pomeru\/","og_site_name":"The Codest","article_published_time":"2022-11-15T10:09:22+00:00","article_modified_time":"2026-03-09T13:10:53+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"4 Common Web Accessibility Issues to Know","datePublished":"2022-11-15T10:09:22+00:00","dateModified":"2026-03-09T13:10:53+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/"},"wordCount":1409,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png","articleSection":["Software Development"],"inLanguage":"cs-CZ","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/","url":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/","name":"4 b\u011b\u017en\u00e9 probl\u00e9my s p\u0159\u00edstupnost\u00ed webu - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png","datePublished":"2022-11-15T10:09:22+00:00","dateModified":"2026-03-09T13:10:53+00:00","description":"Pr\u016fvodce b\u011b\u017en\u00fdmi probl\u00e9my p\u0159\u00edstupnosti webu, kter\u00e9 by m\u011bli v\u00fdvoj\u00e1\u0159i zn\u00e1t, s praktick\u00fdmi tipy pro zlep\u0161en\u00ed pou\u017eitelnosti pro u\u017eivatele se zdravotn\u00edm posti\u017een\u00edm.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#breadcrumb"},"inLanguage":"cs-CZ","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/"]}]},{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/common_web_accessibility_issues1.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/contrast-ratio-issue\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"4 Common Web Accessibility Issues to Know"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs-CZ"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"cs-CZ","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/cs\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/comments?post=3142"}],"version-history":[{"count":11,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3142\/revisions"}],"predecessor-version":[{"id":8518,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3142\/revisions\/8518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media\/3143"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media?parent=3142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/categories?post=3142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/tags?post=3142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}