@@ -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