{"component":{"aria":"With JS: synthesise role=tablist / role=tab / role=tabpanel / aria-selected / aria-controls once JS is confirmed available. Without JS: the native <details>/<summary> interaction is accessible to all screen readers with no additional ARIA required. Do not add tablist roles before JS runs — mismatched roles on a non-interactive element break screen readers.","category":"components","css":"","description":"Tabs implemented as <details> elements, progressively enhanced by JS to behave as a tabset (opening one closes others; deep-link via #fragment). Zero-JS baseline: all panels accessible via expand/collapse. Distinct from ps-tab (URL-reflected routing pattern) — use this when content is in-page and JS may be unavailable.","display_name":"Tab Bar (Disclosure)","html":"<div class=\"ps-tab-bar\" role=\"tablist\">\n  <details class=\"ps-tab\" open>\n    <summary class=\"ps-tab__summary\">{{tabLabel}}</summary>\n    <div class=\"ps-tab__panel\">{{content}}</div>\n  </details>\n</div>","name":"tab-bar-disclosure","registry_type":"component","research_links":[],"tabs_available":[],"variants":[],"wcag":{"focus_visible":true,"target":"2.2 AA"}},"tenant":"pointsav","theme":"pointsav-brand"}