Skip to content

Commit 4d91dea

Browse files
committed
fix(alert): use semantic heading structure for headers
1 parent e32fbe0 commit 4d91dea

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

core/src/components/alert/alert.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -730,10 +730,12 @@ export class Alert implements ComponentInterface, OverlayInterface {
730730
const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
731731

732732
/**
733-
* If the header is defined, use that. Otherwise, fall back to the subHeader.
734-
* If neither is defined, don't set aria-labelledby.
733+
* Use both the header and subHeader ids if they are defined.
734+
* If only the header is defined, use the header id.
735+
* If only the subHeader is defined, use the subHeader id.
736+
* If neither are defined, do not set aria-labelledby.
735737
*/
736-
const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
738+
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
737739

738740
return (
739741
<Host
@@ -766,11 +768,18 @@ export class Alert implements ComponentInterface, OverlayInterface {
766768
{header}
767769
</h2>
768770
)}
769-
{subHeader && (
771+
{/* If no header exists, subHeader should be the highest heading level, h2 */}
772+
{subHeader && !header && (
770773
<h2 id={subHdrId} class="alert-sub-title">
771774
{subHeader}
772775
</h2>
773776
)}
777+
{/* If a header exists, subHeader should be one level below it, h3 */}
778+
{subHeader && header && (
779+
<h3 id={subHdrId} class="alert-sub-title">
780+
{subHeader}
781+
</h3>
782+
)}
774783
</div>
775784

776785
{this.renderAlertMessage(msgId)}

0 commit comments

Comments
 (0)