{"id":993427,"date":"2026-05-29T11:45:20","date_gmt":"2026-05-29T11:45:20","guid":{"rendered":"https:\/\/ifdb.io\/semantic-html-as-the-foundation-of-accessibility\/"},"modified":"2026-11-10T13:19:49","modified_gmt":"2026-11-10T13:19:49","slug":"semantic-html-as-the-foundation-of-accessibility","status":"publish","type":"post","link":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/","title":{"rendered":"Semantic HTML as the foundation of accessibility"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When developers ask me about accessibility, they usually ask about ARIA attributes. They rarely ask about the correct HTML element. That\u2019s the wrong order \u2013 and one of the most common reasons why custom components fail audits. <strong>Semantic HTML<\/strong> isn\u2019t just some old-fashioned detail from before the framework era; it\u2019s the foundation of every accessible website. If you choose the right element, you get keyboard navigation, focus behaviour, screen reader support and form integration as standard. Those who ignore it <code>div<\/code>and work with building blocks plus ARIA end up laboriously recreating the same functionality \u2013 usually incompletely. In this guide, I\u2019ll show you, using specific code comparisons, why semantic HTML renders around 90 per cent of all ARIA attributes superfluous.<\/p>\n\n<h2 id=\"h-was-semantisches-html-ausmacht\" class=\"wp-block-heading\">What defines semantic HTML<\/h2>\n\n<p class=\"wp-block-paragraph\">Semantic HTML means choosing elements not based on their appearance, but on their meaning. A button is a `<code>&lt;button&gt;<\/code>button`, a list is a `<code>&lt;ul&gt;<\/code>list` or `<code>&lt;ol&gt;<\/code>ul`, a main heading is a `<code>&lt;h1&gt;<\/code>h1` and not a styled `<code>&lt;div&gt;<\/code>p`. This meaning is invisible to sighted users, but is crucial for assistive technologies: a screen reader distinguishes between a button and a paragraph, navigates via headings and landmarks, and announces lists as such. Generic containers such as <code>&lt;div&gt;<\/code> or <code>&lt;span&gt;<\/code>say nothing about the function of their content \u2013 they are mere containers with no semantic value.<\/p>\n\n<h2 id=\"h-warum-semantisches-html-90-prozent-der-aria-attribute-uberflussig-macht\" class=\"wp-block-heading\">Why semantic HTML makes 90 per cent of ARIA attributes redundant<\/h2>\n\n<p class=\"wp-block-paragraph\">This observation is not my own, but is stated in a similar vein in the W3C\u2019s ARIA Authoring Practices: if a native HTML element provides the necessary semantics and behaviour, use that element instead of ARIA. Seven specific comparisons illustrate what this means in practice.<\/p>\n\n<h2 id=\"h-button\" class=\"wp-block-heading\">Button<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Mit ARIA --&gt;\n&lt;div role=\"button\" tabindex=\"0\"\n     onclick=\"speichern()\"\n     onkeydown=\"if(event.key==='Enter')speichern()\"&gt;\n  Speichern\n&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;button onclick=\"speichern()\"&gt;Speichern&lt;\/button&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">The native <code>&lt;button&gt;<\/code> element provides the following by default: focusability, keyboard navigation using the Enter and Spacebar keys, default focus style, correct role for screen readers, and form integration. With the <code>div<\/code>-construct, you have to implement all of this yourself \u2013 and usually end up overlooking at least one aspect.<\/p>\n\n<h2 id=\"h-navigation\" class=\"wp-block-heading\">Navigation<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Mit ARIA --&gt;\n&lt;div role=\"navigation\" aria-label=\"Hauptnavigation\"&gt;\n  &lt;div&gt;&lt;a href=\"\/\"&gt;Start&lt;\/a&gt;&lt;\/div&gt;\n  &lt;div&gt;&lt;a href=\"\/produkte\"&gt;Produkte&lt;\/a&gt;&lt;\/div&gt;\n&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;nav aria-label=\"Hauptnavigation\"&gt;\n  &lt;ul&gt;\n    &lt;li&gt;&lt;a href=\"\/\"&gt;Start&lt;\/a&gt;&lt;\/li&gt;\n    &lt;li&gt;&lt;a href=\"\/produkte\"&gt;Produkte&lt;\/a&gt;&lt;\/li&gt;\n  &lt;\/ul&gt;\n&lt;\/nav&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">The `landmark<code>&lt;nav&gt;<\/code>` element is a landmark that screen reader users can navigate to using a single keyboard shortcut. The `count<code>&lt;ul&gt;<\/code>` attribute announces the number of items. The `div<code>div<\/code>`-based approach cannot easily achieve this with ARIA \u2013 and even then, the list announcements are missing.<\/p>\n\n<h2 id=\"h-akkordeon\" class=\"wp-block-heading\">Accordion<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Mit ARIA (vereinfacht) --&gt;\n&lt;div role=\"button\" aria-expanded=\"false\"\n     aria-controls=\"panel-1\" tabindex=\"0\"&gt;\n  Details\n&lt;\/div&gt;\n&lt;div id=\"panel-1\" role=\"region\" hidden&gt;\n  Inhalt\n&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;details&gt;\n  &lt;summary&gt;Details&lt;\/summary&gt;\n  Inhalt\n&lt;\/details&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">The pair of elements<code>&lt;details&gt;<\/code> and<code>&lt;summary&gt;<\/code> is a fully functional native accordion \u2013 complete with keyboard controls, toggle behaviour and state notifications. Anyone who isn\u2019t aware of this ends up recreating the component in JavaScript, often forgetting to include the <code>aria-expanded<\/code>-update.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Practical tip:<\/strong> You can find out how your own website is performing in just a few minutes with <a href=\"https:\/\/ifdb.io\/en\/access-score\/\">Access Score\u2019s free BFSG Check<\/a> \u2013 no registration required, and with an honest assessment based on WCAG 2.2.<\/p>\n\n<h2 id=\"h-listen\" class=\"wp-block-heading\">Lists<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Falsch --&gt;\n&lt;div class=\"item\"&gt;Erstes Element&lt;\/div&gt;\n&lt;div class=\"item\"&gt;Zweites Element&lt;\/div&gt;\n&lt;div class=\"item\"&gt;Drittes Element&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;ul&gt;\n  &lt;li&gt;Erstes Element&lt;\/li&gt;\n  &lt;li&gt;Zweites Element&lt;\/li&gt;\n  &lt;li&gt;Drittes Element&lt;\/li&gt;\n&lt;\/ul&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">A screen reader announces the <code>&lt;ul&gt;<\/code>list as \u2018a list with three items\u2019 and allows the user to navigate between the list items. The <code>div<\/code>alternative version sounds like three unrelated sentences.<\/p>\n\n<h2 id=\"h-uberschriften-struktur\" class=\"wp-block-heading\">Heading structure<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Falsch (rein optisch) --&gt;\n&lt;div class=\"title-large\"&gt;Unsere Produkte&lt;\/div&gt;\n&lt;div class=\"title-medium\"&gt;Kategorie A&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;h1&gt;Unsere Produkte&lt;\/h1&gt;\n&lt;h2&gt;Kategorie A&lt;\/h2&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">The heading hierarchy is to screen reader users what skimming is to sighted people \u2013 the only way to quickly get their bearings. They can use keyboard shortcuts to navigate between headings. Without proper H elements, this navigation is completely lost.<\/p>\n\n<h2 id=\"h-formular-label\" class=\"wp-block-heading\">Form Labels<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Falsch --&gt;\n&lt;span&gt;E-Mail-Adresse&lt;\/span&gt;\n&lt;input type=\"email\"&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;label for=\"email\"&gt;E-Mail-Adresse&lt;\/label&gt;\n&lt;input type=\"email\" id=\"email\"&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">The linked<code>&lt;label&gt;<\/code> element ensures that clicking on the label text focuses on the field \u2013 important for users with motor impairments. A screen reader automatically reads out the label when the field is focused. The <code>span<\/code>-construction lacks both of these properties.<\/p>\n\n<h2 id=\"h-bilder\" class=\"wp-block-heading\">Images<\/h2>\n\n<pre class=\"wp-block-code\"><code>&lt;!-- Falsch --&gt;\n&lt;div style=\"background-image: url(produkt.jpg)\"\n     aria-label=\"Produktfoto\"&gt;&lt;\/div&gt;\n\n&lt;!-- Semantisch --&gt;\n&lt;img src=\"produkt.jpg\" alt=\"Produktfoto\"&gt;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">An <code>&lt;img&gt;<\/code>element with a valid <code>alt<\/code>attribute is correctly announced as an image by screen readers, loads as expected, and can be viewed or downloaded using browser tools. A photograph loaded as a background image is simply invisible for many of these purposes.<\/p>\n\n<h2 id=\"h-die-wichtigsten-semantischen-elemente-im-uberblick\" class=\"wp-block-heading\">An overview of the most important semantic elements<\/h2>\n\n<p class=\"wp-block-paragraph\">A concise overview, grouped by function:<\/p>\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Category<\/th><th>Elements<\/th><th>Function<\/th><\/tr><\/thead><tbody><tr><td>Structure (Landmarks)<\/td><td>header, nav, main, aside, footer<\/td><td>Main sections of the page, navigable via screen reader shortcuts<\/td><\/tr><tr><td>Content sections<\/td><td>article, section<\/td><td>Subdivision of content<\/td><\/tr><tr><td>Headings<\/td><td>h1 to h6<\/td><td>Hierarchical structure<\/td><\/tr><tr><td>Lists<\/td><td>ul, ol, li, dl, dt, dd<\/td><td>Related lists<\/td><\/tr><tr><td>Interactive elements<\/td><td>button, a, input, select, textarea, label, details, summary, dialog<\/td><td>Native interaction with built-in accessibility<\/td><\/tr><tr><td>Tables<\/td><td>table, thead, tbody, tr, th, td, caption<\/td><td>Tabular data with cell mapping<\/td><\/tr><tr><td>Media<\/td><td>img, figure, figcaption, video, audio<\/td><td>Embedded content with alternatives<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h2 id=\"h-landmarks-wie-screenreader-nutzer-navigieren\" class=\"wp-block-heading\">Landmarks: How screen reader users navigate<\/h2>\n\n<p class=\"wp-block-paragraph\"><code>&lt;header&gt;<\/code><code>&lt;nav&gt;<\/code><code>&lt;main&gt;<\/code><code>&lt;aside&gt;<\/code><code>&lt;footer&gt;<\/code> <code>&lt;div&gt;<\/code>-As it is contained within a container, it forces the user to listen through the content sequentially. Important: it<code>&lt;main&gt;<\/code> must only appear once per page and identifies the actual main content \u2013 the content to which a skip link at the top of the page should lead. I have described how keyboard navigation and focus management work in general in the article \u2018<a href=\"https:\/\/ifdb.io\/en\/accessible-keyboard-navigation-using-a-website-without-a-mouse\/\">Implementing Keyboard Navigation and Focus Management in accordance with WCAG<\/a>\u2019.<\/p>\n\n<h2 id=\"h-wann-sie-aria-wirklich-noch-brauchen\" class=\"wp-block-heading\">When you really still need ARIA<\/h2>\n\n<p class=\"wp-block-paragraph\">The remaining ten per cent. If your HTML is semantically sound, ARIA is reserved for a small but important set of cases:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Icon buttons without visible text<\/strong>\u2013 a magnifying glass icon requires one<code>aria-label<\/code>, as the element itself has no text content.<\/li>\n\n\n\n<li><strong>Custom widgets for which HTML has no equivalent<\/strong> \u2013 tabs, carousels, trees, complex modals. Here, too, the rule applies: check first whether <code>&lt;details&gt;<\/code>, or <code>&lt;dialog&gt;<\/code>other native elements might be suitable.<\/li>\n\n\n\n<li><strong>Live regions<\/strong> \u2013 toast notifications, dynamic search results, status messages that need to appear without the focus shifting.<\/li>\n\n\n\n<li><strong>Status information<\/strong> for non-native components \u2013<code>aria-expanded<\/code> ,<code>aria-pressed<\/code> , <code>aria-current<\/code>.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">You can find out which ARIA patterns are correct and which have the opposite effect in <a href=\"https:\/\/ifdb.io\/aria-label-wai-aria-richtig-einsetzen\/\">Using ARIA Labels Correctly: The Practical Guide for Developers<\/a>.<\/p>\n\n<h2 id=\"h-die-haufigsten-html-anti-patterns-aus-der-praxis\" class=\"wp-block-heading\">The most common HTML anti-patterns in practice<\/h2>\n\n<p class=\"wp-block-paragraph\">There are four patterns that I notice most frequently during code reviews: Firstly, <code>&lt;div&gt;<\/code>\u2018soup\u2019 \u2013 an entire page consisting solely of nested generic containers, without a single semantic element. Secondly, links that are meant to look like buttons but appear as <code>&lt;a&gt;<\/code> without<code>href<\/code> or with <code>href=\"#\"<\/code> \u2013 a <code>&lt;a&gt;<\/code> without a target is semantic rubbish. Thirdly, tables used for layout purposes \u2013 an anti-pattern that has survived from the 2000s and is still rife in newsletter templates. Fourthly, multiple <code>&lt;h1&gt;<\/code>-Elements on a single page, either because the page builder sets it up that way or because different components each mark their headings as \u2018main\u2019. One per page<code>&lt;h1&gt;<\/code> \u2013 that\u2019s the unwritten rule that is rarely followed in audits.<\/p>\n\n<h2 id=\"h-was-im-code-review-auffallen-sollte\" class=\"wp-block-heading\">What to look out for in a code review<\/h2>\n\n<p class=\"wp-block-paragraph\">HTML issues are the only type of accessibility violation that can be reliably detected automatically \u2013 missing <code>alt<\/code>attributes, incorrect heading hierarchy, generic containers lacking semantic meaning, and buttons without labels. This is exactly where our <strong>Access Guard<\/strong> comes in: the monitoring system automatically checks your pages for the typical HTML anti-patterns outlined in this guide after every code deployment and reports them directly to your development tools such as Jira, Slack or Teams. It provides specific guidance on which semantic element would be correct in each instance.<\/p>\n\n<p class=\"wp-block-paragraph\">This is no substitute for a code review \u2013 but it does speed up the code review process, as the obvious issues have already been flagged before anyone looks at the code. If you want to get a rough idea of the current state of your website, start with the free Access Score.<\/p>\n\n<p class=\"ifdb-cta wp-block-paragraph\"><strong>Does your team want to fix issues in the code rather than just covering them up? In 30 minutes, we\u2019ll explain how testing and fixing fit into your day-to-day development work.<\/strong><\/p>\n\n<div class=\"wp-block-buttons ifdb-cta is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/calendly.com\/ifdb\/30min\">Book a 30-minute Call<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>When developers ask me about accessibility, they usually ask about&hellip;<\/p>\n","protected":false},"author":1,"featured_media":993300,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67],"tags":[],"class_list":["post-993427","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-code"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Semantic HTML: The foundation of accessibility<\/title>\n<meta name=\"description\" content=\"Semantic HTML as the foundation of accessibility: Why using the right element makes 90 per cent of ARIA attributes redundant.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Semantic HTML: Why it replaces 90 per cent of ARIA attributes\" \/>\n<meta property=\"og:description\" content=\"The right element comes with keyboard, focus and screen reader support as standard. With specific code comparisons drawn from real-world examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/\" \/>\n<meta property=\"og:site_name\" content=\"ifdb \u2013 digitale Barrierefreiheit &amp; BFSG-Konformit\u00e4t\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-29T11:45:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-10T13:19:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lukas Maximilian Langer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"If you write HTML correctly, you\u2019ll hardly need ARIA\" \/>\n<meta name=\"twitter:description\" content=\"Seven code comparisons that show why semantic HTML is the more important discipline \u2013 and why ARIA is almost superfluous.\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Maximilian Langer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/\"},\"author\":{\"name\":\"Lukas Maximilian Langer\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#\\\/schema\\\/person\\\/3dc6a516bc934cf80a07e460b9c29fab\"},\"headline\":\"Semantic HTML as the foundation of accessibility\",\"datePublished\":\"2026-05-29T11:45:20+00:00\",\"dateModified\":\"2026-11-10T13:19:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/\"},\"wordCount\":1203,\"publisher\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg\",\"articleSection\":[\"Development &amp; Code\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/\",\"url\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/\",\"name\":\"Semantic HTML: The foundation of accessibility\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg\",\"datePublished\":\"2026-05-29T11:45:20+00:00\",\"dateModified\":\"2026-11-10T13:19:49+00:00\",\"description\":\"Semantic HTML as the foundation of accessibility: Why using the right element makes 90 per cent of ARIA attributes redundant.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg\",\"contentUrl\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg\",\"width\":1920,\"height\":1280,\"caption\":\"A woman wearing glasses works intently on her laptop against a night-time city backdrop \u2013 semantic HTML as the technical foundation for accessible websites in accordance with WCAG 2.2 and B\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/semantic-html-as-the-foundation-of-accessibility\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ifdb.io\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Semantic HTML as the foundation of accessibility\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/ifdb.io\\\/en\\\/\",\"name\":\"ifdb\",\"description\":\"Audit, Zertifizierung und Haftungsschutz f\u00fcr digitale Barrierefreiheit\",\"publisher\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#organization\"},\"alternateName\":\"ifdb GmbH\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ifdb.io\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#organization\",\"name\":\"ifdb GmbH\",\"alternateName\":\"ifdb\",\"url\":\"https:\\\/\\\/ifdb.io\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ifdb_logo.png\",\"contentUrl\":\"https:\\\/\\\/ifdb.io\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ifdb_logo.png\",\"width\":1366,\"height\":590,\"caption\":\"ifdb GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/ifdb.io\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/ifdb-io\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ifdb.io\\\/en\\\/#\\\/schema\\\/person\\\/3dc6a516bc934cf80a07e460b9c29fab\",\"name\":\"Lukas Maximilian Langer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g\",\"caption\":\"Lukas Maximilian Langer\"},\"description\":\"Gr\u00fcnder &amp; Unternehmer, ifdb. Lukas Maximilian Langer hat die ifdb zu einem der Marktf\u00fchrer f\u00fcr digitale Barrierefreiheit aufgebaut. Als gelernter Mediengestalter mit \u00fcber zehn Jahren Erfahrung wei\u00df er, wie Websites und Dokumente entstehen \u2013 und an welchen Stellen sie Menschen ausschlie\u00dfen. Als Experte f\u00fcr digitale Barrierefreiheit war er im ZDF bei WISO zu Gast.\",\"sameAs\":[\"https:\\\/\\\/ifdb.io\\\/lukas-maximilian-langer\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/lukasmaximilianlanger\"],\"gender\":\"m\u00e4nnlich\",\"knowsAbout\":[\"Design\",\"Development\",\"digitale Barrierefreiheit\",\"EAA\",\"BFSG\",\"Marketing\",\"EN301549\"],\"knowsLanguage\":[\"Deutsch\",\"Englisch\",\"Spanisch\"],\"jobTitle\":\"Gr\u00fcnder\",\"worksFor\":\"IFDB GmbH\",\"url\":\"https:\\\/\\\/ifdb.io\\\/en\\\/author\\\/l-langerifdb-op\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Semantic HTML: The foundation of accessibility","description":"Semantic HTML as the foundation of accessibility: Why using the right element makes 90 per cent of ARIA attributes redundant.","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:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/","og_locale":"en_US","og_type":"article","og_title":"Semantic HTML: Why it replaces 90 per cent of ARIA attributes","og_description":"The right element comes with keyboard, focus and screen reader support as standard. With specific code comparisons drawn from real-world examples.","og_url":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/","og_site_name":"ifdb \u2013 digitale Barrierefreiheit &amp; BFSG-Konformit\u00e4t","article_published_time":"2026-05-29T11:45:20+00:00","article_modified_time":"2026-11-10T13:19:49+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg","type":"image\/jpeg"}],"author":"Lukas Maximilian Langer","twitter_card":"summary_large_image","twitter_title":"If you write HTML correctly, you\u2019ll hardly need ARIA","twitter_description":"Seven code comparisons that show why semantic HTML is the more important discipline \u2013 and why ARIA is almost superfluous.","twitter_misc":{"Written by":"Lukas Maximilian Langer","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#article","isPartOf":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/"},"author":{"name":"Lukas Maximilian Langer","@id":"https:\/\/ifdb.io\/en\/#\/schema\/person\/3dc6a516bc934cf80a07e460b9c29fab"},"headline":"Semantic HTML as the foundation of accessibility","datePublished":"2026-05-29T11:45:20+00:00","dateModified":"2026-11-10T13:19:49+00:00","mainEntityOfPage":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/"},"wordCount":1203,"publisher":{"@id":"https:\/\/ifdb.io\/en\/#organization"},"image":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#primaryimage"},"thumbnailUrl":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg","articleSection":["Development &amp; Code"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/","url":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/","name":"Semantic HTML: The foundation of accessibility","isPartOf":{"@id":"https:\/\/ifdb.io\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#primaryimage"},"image":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#primaryimage"},"thumbnailUrl":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg","datePublished":"2026-05-29T11:45:20+00:00","dateModified":"2026-11-10T13:19:49+00:00","description":"Semantic HTML as the foundation of accessibility: Why using the right element makes 90 per cent of ARIA attributes redundant.","breadcrumb":{"@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#primaryimage","url":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg","contentUrl":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/05\/woman-touching-chin-typing-on-laptop_C_-2023-12-04-20-06-15-utc.jpg","width":1920,"height":1280,"caption":"A woman wearing glasses works intently on her laptop against a night-time city backdrop \u2013 semantic HTML as the technical foundation for accessible websites in accordance with WCAG 2.2 and B"},{"@type":"BreadcrumbList","@id":"https:\/\/ifdb.io\/en\/semantic-html-as-the-foundation-of-accessibility\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ifdb.io\/en\/"},{"@type":"ListItem","position":2,"name":"Semantic HTML as the foundation of accessibility"}]},{"@type":"WebSite","@id":"https:\/\/ifdb.io\/en\/#website","url":"https:\/\/ifdb.io\/en\/","name":"ifdb","description":"Audit, Zertifizierung und Haftungsschutz f\u00fcr digitale Barrierefreiheit","publisher":{"@id":"https:\/\/ifdb.io\/en\/#organization"},"alternateName":"ifdb GmbH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ifdb.io\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ifdb.io\/en\/#organization","name":"ifdb GmbH","alternateName":"ifdb","url":"https:\/\/ifdb.io\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ifdb.io\/en\/#\/schema\/logo\/image\/","url":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/06\/ifdb_logo.png","contentUrl":"https:\/\/ifdb.io\/wp-content\/uploads\/2026\/06\/ifdb_logo.png","width":1366,"height":590,"caption":"ifdb GmbH"},"image":{"@id":"https:\/\/ifdb.io\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/ifdb.io\/","https:\/\/www.linkedin.com\/company\/ifdb-io\/"]},{"@type":"Person","@id":"https:\/\/ifdb.io\/en\/#\/schema\/person\/3dc6a516bc934cf80a07e460b9c29fab","name":"Lukas Maximilian Langer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdcdadbe9ee8fc0e930f7635b7f8ed5e82ca93088e944c2a2caec91811b70e6d?s=96&d=mm&r=g","caption":"Lukas Maximilian Langer"},"description":"Gr\u00fcnder &amp; Unternehmer, ifdb. Lukas Maximilian Langer hat die ifdb zu einem der Marktf\u00fchrer f\u00fcr digitale Barrierefreiheit aufgebaut. Als gelernter Mediengestalter mit \u00fcber zehn Jahren Erfahrung wei\u00df er, wie Websites und Dokumente entstehen \u2013 und an welchen Stellen sie Menschen ausschlie\u00dfen. Als Experte f\u00fcr digitale Barrierefreiheit war er im ZDF bei WISO zu Gast.","sameAs":["https:\/\/ifdb.io\/lukas-maximilian-langer\/","https:\/\/www.linkedin.com\/in\/lukasmaximilianlanger"],"gender":"m\u00e4nnlich","knowsAbout":["Design","Development","digitale Barrierefreiheit","EAA","BFSG","Marketing","EN301549"],"knowsLanguage":["Deutsch","Englisch","Spanisch"],"jobTitle":"Gr\u00fcnder","worksFor":"IFDB GmbH","url":"https:\/\/ifdb.io\/en\/author\/l-langerifdb-op\/"}]}},"_links":{"self":[{"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/posts\/993427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/comments?post=993427"}],"version-history":[{"count":1,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/posts\/993427\/revisions"}],"predecessor-version":[{"id":993428,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/posts\/993427\/revisions\/993428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/media\/993300"}],"wp:attachment":[{"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/media?parent=993427"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/categories?post=993427"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ifdb.io\/en\/wp-json\/wp\/v2\/tags?post=993427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}