Why this page exists Top 5 audit mistakes General do's General don'ts Mistake to better solution Before-merge checklist
aria-* directly on a PDS component root element instead of using the aria prop.header, nav, main, footer) and add aria-label or aria-labelledby where
appropriate.h1 → h2 → h3 and avoid skipping levels).aria prop where supported.aria-* attributes on PDS component host elements as a workaround.<p-button aria-haspopup="dialog" aria-label="Open details of product XYZ">
Open details
</p-button>
<p-button aria="{ 'aria-haspopup': 'dialog', 'aria-label': 'Open details of product XYZ' }">Open details</p-button>
<p-link icon="arrow-right" href="https://porsche.com"></p-link>
<p-link icon="arrow-right" hide-label="true" href="https://porsche.com">Some label</p-link>
// or with more contextual label for screen readers
<p-link
icon="arrow-right"
hide-label="true"
aria="{ 'aria-label': 'Some label with more information about XYZ' }"
href="https://porsche.com"
>
Some label
</p-link>
<p-carousel>
<!-- many slides -->
</p-carousel>
<p-heading tag="h2">Next content area</p-heading>
<p-carousel skip-link-target="#next-content-area">
<!-- many slides -->
</p-carousel>
<p-heading tag="h2" id="next-content-area">Next content area</p-heading>
