<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Css on Osmar Petry</title><link>https://osmarpetry.dev/tags/css/</link><description>Recent content in Css on Osmar Petry</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Sep 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://osmarpetry.dev/tags/css/rss.xml" rel="self" type="application/rss+xml"/><item><title>Web Accessibility V3 — Topics cheat-sheet &amp; decision guide</title><link>https://osmarpetry.dev/blog/web-accessibility/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0000</pubDate><guid>https://osmarpetry.dev/blog/web-accessibility/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Course map covers &lt;strong&gt;Screen Readers&lt;/strong&gt;, &lt;strong&gt;Accessible HTML&lt;/strong&gt;, &lt;strong&gt;ARIA&lt;/strong&gt;, &lt;strong&gt;Focus Management&lt;/strong&gt;, and &lt;strong&gt;Visual Considerations&lt;/strong&gt;, plus &lt;strong&gt;Debugging &amp;amp; team process&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Aim: ship &lt;strong&gt;perceivable, operable, understandable, robust&lt;/strong&gt; experiences (POUR) with practical exercises and team-ready debugging habits.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="topics--what-to-do-at-a-glance"&gt;Topics → what to do (at a glance)&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Screen Readers:&lt;/strong&gt; learn how they work, enable them, write solid &lt;strong&gt;alt text&lt;/strong&gt;, and test.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Accessible HTML:&lt;/strong&gt; prefer &lt;strong&gt;semantic elements&lt;/strong&gt; and set &lt;strong&gt;document language&lt;/strong&gt;; fix invalid markup.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ARIA:&lt;/strong&gt; add only when semantics aren’t enough; know &lt;strong&gt;roles, states, properties&lt;/strong&gt;, &lt;strong&gt;names/descriptions&lt;/strong&gt;, and &lt;strong&gt;live regions&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Focus Management:&lt;/strong&gt; full keyboard support, &lt;strong&gt;skip links&lt;/strong&gt;, logical &lt;strong&gt;Tab&lt;/strong&gt; order, avoid &lt;strong&gt;focus traps&lt;/strong&gt;, and review shortcuts.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Visual:&lt;/strong&gt; check &lt;strong&gt;color contrast&lt;/strong&gt;, &lt;strong&gt;reflow/zoom&lt;/strong&gt;, &lt;strong&gt;reduced motion&lt;/strong&gt;, and &lt;strong&gt;prefers-color-scheme&lt;/strong&gt;; connect performance with accessibility.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; use linters/devtools, improve team workflows, go &lt;strong&gt;beyond compliance&lt;/strong&gt;, and practice with hands-on exercises.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="decision-heuristics"&gt;Decision heuristics&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Semantics first → ARIA last.&lt;/strong&gt; If a native element already communicates role/state, &lt;strong&gt;don’t add ARIA&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Keyboard is the truth.&lt;/strong&gt; If it’s not operable with keyboard and visible focus, it’s not accessible.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Name, role, value:&lt;/strong&gt; can a screen reader expose them correctly? If not, fix semantics, labels, or ARIA.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Respect user prefs:&lt;/strong&gt; &lt;code&gt;prefers-reduced-motion&lt;/code&gt;, &lt;code&gt;prefers-color-scheme&lt;/code&gt;, and zoom/reflow without loss.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="team-workflow"&gt;Team workflow&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Set standards&lt;/strong&gt; (WCAG targets, browser/AT matrix).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Lint &amp;amp; test early&lt;/strong&gt; (HTML validity, axe, devtools).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Exercise mindset:&lt;/strong&gt; practice with screen readers and keyboard on real UI (modals, forms, navigation).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Go beyond checklists:&lt;/strong&gt; optimize usability for assistive technology users, not just box-ticking.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="dev-checklist"&gt;Dev checklist&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Landmark structure (&lt;code&gt;header&lt;/code&gt;, &lt;code&gt;nav&lt;/code&gt;, &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;aside&lt;/code&gt;, &lt;code&gt;footer&lt;/code&gt;).&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Page language (&lt;code&gt;&amp;lt;html lang&amp;gt;&lt;/code&gt;).&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Forms: &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; + programmatic names; error text announced.&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Interactive controls are &lt;strong&gt;native&lt;/strong&gt; or fully re-created (role, keyboard, focus, ARIA).&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Focus order and &lt;strong&gt;visible&lt;/strong&gt; focus style.&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Contrast meets WCAG; no information by color alone.&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Motion: provide a &lt;strong&gt;reduced motion&lt;/strong&gt; path; avoid parallax autoplay by default.&lt;/li&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Respect zoom/reflow at 200–400% without horizontal scroll.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="references"&gt;References&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Web Accessibility — All Topics (Frontend Masters companion site)&lt;/strong&gt;: &lt;a href="https://web-accessibility-v3.vercel.app/topics" target="_blank" rel="noreferrer"&gt;https://web-accessibility-v3.vercel.app/topics&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GitHub repo&lt;/strong&gt;: &lt;a href="https://github.com/marcysutton/frontend-masters-web-accessibility-v3" target="_blank" rel="noreferrer"&gt;https://github.com/marcysutton/frontend-masters-web-accessibility-v3&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="related-notes"&gt;Related Notes&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;[[react-forwardRef|Forwarding Ref]]&lt;/li&gt;&#10;&lt;li&gt;[[svg-are-the-best|SVG are the Best]]&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>