Skip to contentPorsche Design System
You are currently viewing an earlier release of the Porsche Design System.Switch to the latest Porsche Design System documentation.
SearchGitHub repository of Porsche Design SystemOpen settings sidebar
Popover Table of Contents Accessibility support Keyboard Key / stateFunctionTab, Shift-TabMoves focus to the next (or previous) focusable element.Enter, Space- Opens/closes the popover. ARIA enhancements External ARIA provided by the aria property: ARIAUsagearia-labelDefines a string value that labels the interactive element. Internal ARIA that is managed by the component: ARIAUsagearia-expanded="BOOLEAN"Indicates that the popover element is displayed/hidden.aria-details="IDREF"References the element that provides additional information about the popover. Development considerations In uncontrolled mode the p-popover component does not manage aria-expanded on a custom slotted button, because it does not expose its internal open state publicly. In this case the default info button (which the component fully controls) already exposes aria-expanded for you. In controlled mode the consumer owns the open state, so the slotted trigger can (and should) expose aria-expanded to match the default button's semantics. Bind it to your open state via the trigger's aria property, e.g. aria={{ 'aria-expanded': open ? 'true' : 'false' }}, so it stays in sync as the popover opens and closes. Common do's and don'ts Do prefer the built-in popover trigger when possible so aria-expanded is managed internally. Do provide an accessible name on a custom slotted button when you cannot use the default trigger. Do pass additional ARIA via the aria prop when the default labeling is not sufficient. Don't use an unnamed custom slotted trigger button. Don't add native aria-* attributes directly on the component host. Integration examples
ARIA on component host vs aria prop❌ Anti-pattern
<p-popover aria-label="Specification details" description="Additional specification details."></p-popover>
✅ Recommended
<p-popover aria="{'aria-label': 'Specification details'}" description="Additional specification details."></p-popover>
Custom slotted trigger without accessible name❌ Anti-pattern
<p-popover>
  <button slot="button" type="button"></button>
  Additional specification details.
</p-popover>
✅ Recommended
<p-popover description="Additional specification details."></p-popover>

<!-- or provide an accessible name on a custom slotted button -->

<p-popover>
  <button slot="button" type="button" aria-label="Specification details">
    i
  </button>
  Additional specification details.
</p-popover>
Custom slotted trigger without aria-expanded❌ Anti-pattern
<p-popover>
  <button slot="button" type="button"></button>
</p-popover>
✅ Recommended
<p-popover>
  <button slot="button" type="button" aria-expanded="false"></button>
</p-popover>
Tests Automated TechnologySupportAXE-Core (WCAG 2.2 AA, Best-Practice)High-Contrast Mode (light/dark)Text-Zoom (200%) Manual TechnologySupportKeyboardScreen reader (VoiceOver, NVDA)
Global settingsColor SchemeAll color tokens use the light-dark() CSS function. Set the theme via the CSS color-scheme property: light for light mode, dark for dark mode, or light dark to follow the user's system preference.LightDarkLight DarkDirectionThe dir global attribute in HTML changes the direction of text and other content within an element. It's most often used on the <html> tag to set the entire page's direction, which is crucial for supporting languages that are written from right to left (RTL), such as Arabic and Hebrew. For example, using <html dir="rtl"> makes the entire page display from right to left, adjusting the layout and text flow accordingly.LTR (left-to-right)RTL (right-to-left)Text ZoomTo ensure accessibility and comply with WCAG 2.2 AA standards, it is mandatory for web content to support text resizing up to at least 200% without loss of content or functionality. Using relative units like rem is a best practice for achieving this, as they allow the text to scale uniformly based on the user's browser settings.100%130%150%200%