aria‑hidden Conflict Finder - Online A11y Audit
Paste HTML and detect elements with aria‑hidden='true' that contain focusable children. An easy a11y win to fix.
UD5 Toolkit
Paste your HTML to inspect aria-describedby relationships, validate ID references, and preview descriptions.
Paste HTML and click Analyze Descriptions to see results here.
aria-labelledby which provides the accessible name, aria-describedby provides additional descriptive information.
aria-labelledby defines the accessible name of an element — it replaces the element's native label. aria-describedby provides supplementary information that is announced after the name and role. Think of it this way: aria-labelledby = "what is this?" and aria-describedby = "tell me more about this." An element can have both attributes simultaneously, and both accept multiple space-separated ID references. Screen readers typically announce the description after a short pause, allowing users to hear the label first.
aria-describedby accepts multiple space-separated ID references, like aria-describedby="hint1 error1 note1". Screen readers will concatenate the text content of all referenced elements and announce them in the order they appear in the attribute value. Each ID is checked independently — if any referenced ID doesn't exist in the DOM, that specific reference is broken. Use our tool above to validate all your ID references at once.
aria-describedby is not focusable or not exposed to the accessibility tree (e.g., it has aria-hidden="true" or display:none on itself). (5) Some screen readers may not support aria-describedby on certain roles — check the ARIA specification for supported roles.
aria-describedby can be visually hidden (e.g., using the CSS .sr-only clip technique) and screen readers will still announce their content. However, avoid using display:none on description elements, as this removes them from the accessibility tree entirely and screen readers won't find them. The safest approach for visually hidden descriptions is the classic screen-reader-only CSS pattern: position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);. That way the text remains accessible to assistive technology while being invisible to sighted users.
aria-describedby. For automated testing, tools like axe-core, Lighthouse, and WAVE can detect missing or broken ARIA references.
aria-describedby, as this creates confusing announcement orders. Test with real assistive technology to confirm the reading order feels natural.
Paste HTML and detect elements with aria‑hidden='true' that contain focusable children. An easy a11y win to fix.
Paste a website's HTML and see which text is only visible to screen readers (e.g., .sr‑only). Preview the accessible layer.
Paste an SVG and check if the graphic‑aria roles are used correctly. Improve accessible diagrams and icons.
Enter terms and definitions and generate a clean `<dl>` HTML snippet. Great for glossaries and FAQs.
Enter a URL and extract tab‐index order violations and focusable elements. Quick accessibility audit. Client‑side fetch.
Paste HTML and see the order in which elements would receive focus via Tab key. Highlight issues. Local accessibility testing.
Start from a base color and use `oklch(from color l c h)` to create lighter or darker variants. Copy the code.
Enter a URL and see a visual map of the tab order. Detect broken tabindex values. Improve keyboard navigation.
See how a full paragraph looks with your chosen text and background colors. Not just a ratio; the real appearance.
Detect browser support for font‑tech() and font‑format() values in @font‑face src. Check COLRv1, variable, etc.
Paste your Accept‑Language header and see which languages your site should serve based on quality values. Internationalization helper.
See the difference between :focus and :focus‑visible on interactive elements. Learn which to use for better UX.
Toggle OpenType features like liga, smcp, tnum, and see the text update. Support for variable fonts. Typography nerds.
Paste HTML and extract all unique data‑* attributes into a clean list. Understand the data model of a page.
Browse the fonts installed on your system and type a custom phrase to see how it looks. Uses Local Font Access API where available.
Add, remove, push, pop items and watch the data structure change visually. Supports arrays, stacks, and queues. For CS students.
Apply dyslexia‑friendly fonts, spacing, and background to any text. Preview and copy the formatted version. Improve readability.
Stack multiple background images and blend them with colors. Create unique textures. Copy the CSS code instantly.
Toggle between light and dark mode for a demo page. See how to use the media query. Copy the pattern.
Convert normal text to Unicode mathematical bold, italic, script, fraktur, and double‑struck. Copy rich text for anywhere.
Select a local font and see all its metrics: ascent, descent, x‑height, and supported features. Typography deep dive.
Visualize how caffeine decays in your body over time. Enter intake amount and see remaining caffeine at bedtime to optimize sleep. Uses standard 5-hour half-life.
Simulate reduced motion preference and test your animations. Copy the media query snippet. Keep your users safe.
See which fonts map to generic families (serif, sans‑serif, monospace) on different operating systems. A handy reference.
Watch classic sorting algorithms step through a randomized bar chart. Adjust speed and array size. Great for learning algorithm efficiency.
Paste HTML and see a collapsible tree of tags. Understand document outline and nesting. Handier than raw code.
Create categorized shopping lists (produce, dairy, meat, etc.). Add items, check them off, and print. Data stored in your browser. Never lose a list.
Drop an image that might have wrong extension and see its real format (JPEG, PNG, WebP) based on header bytes.
Animate elements as they enter and exit the viewport using view() timeline. Parallax and reveal effects without JS.
Type any character and see how it renders in different font stacks. Detect missing glyphs and fallback behavior.