blob: 46d67835d85e8ed9dc52447e4702a52eeff6f26f [file] [log] [blame]
<!--
@BLINK-ALLOW:hierarchicalLevel*
@MAC-ALLOW:AXDisclosureLevel
@WIN-ALLOW:level:*
@WIN-ALLOW:xml-roles*
@UIA-WIN-ALLOW:Level*
@AURALINUX-ALLOW:level:*
@AURALINUX-ALLOW:xml-roles*
-->
<html>
<body>
<div headingoffset=1 title="container headingoffset=1"> <!-- h1s are now h2s and so on -->
<h1><!-- Level 2, h1 + 1 = 2 --></h1>
<h2><!-- Level 3, h2 + 1 = 3 --></h2>
<h3><!-- Level 4, h3 + 1 = 4 --></h3>
<div headingoffset=2 title="container headingoffset=2"> <!-- h1s are now h4s -->
<h1><!-- Level 4, h1 + 2 + 1 = 4 --></h1>
<h2><!-- Level 5, h2 + 2 + 1 = 5 --></h2>
<div headingreset title="container headingreset"> <!-- h1s are now h1s -->
<h1><!-- Level 1, h1 (headingreset)--></h1>
</div>
<dialog open title="container dialog"> <!-- non-modal dialogs do not headingreset, h1s are still h4s -->
<h1><!-- Level 4, h1 + 2 + 1 = 4 --></h1>
<h1 headingreset><!-- Level 1, h1 (headingreset) --></h1>
</dialog>
</div>
</div>
<!-- Clamping -->
<div headingoffset=8 title="container headingoffset=8"> <!-- h1s are now h9s -->
<h1><!-- Level 9, h1 + 8 --></h1>
<h2><!-- Level 9, h2 + 8 (clamped) --></h2>
<h3><!-- Level 9, h3 + 8 (clamped) --></h3>
<h4><!-- Level 9, h4 + 8 (clamped) --></h4>
<h5><!-- Level 9, h5 + 8 (clamped) --></h5>
<h6><!-- Level 9, h6 + 8 (clamped) --></h6>
<div headingreset title="container headingreset"> <!-- h1s are now h1s -->
<h1><!-- Level 1, h1 (headingreset)--></h1>
</div>
<dialog open title="container dialog"> <!-- non-modal dialogs do not headingreset, h1s are still h4s -->
<h1><!-- Level 9, h1 + 8 --></h1>
</dialog>
</div>
<!-- Negative headingoffsets are clamped to `0` -->
<div headingoffset="-3" title="container headingoffset=-3">
<h1><!-- Level 1, h1 + (-3 clamped to 0) --></h1>
<h2><!-- Level 2, h2 + (-3 clamped to 0) --></h2>
<h3><!-- Level 3, h3 + (-3 clamped to 0) --></h3>
<h4><!-- Level 4, h4 + (-3 clamped to 0) --></h4>
<h5><!-- Level 5, h5 + (-3 clamped to 0) --></h5>
<h6><!-- Level 6, h6 + (-3 clamped to 0) --></h6>
<div headingreset title="container headingreset"> <!-- h1s are now h1s -->
<h1><!-- Level 1, h1 (headingreset)--></h1>
</div>
<dialog open title="container dialog"> <!-- non-modal dialogs do not headingreset, h1s are still h1s -->
<h1><!-- Level 1, h1 + (-3 clamped to 0) --></h1>
</dialog>
</div>
<!-- Ensure shadow roots work -->
<div headingoffset=1 title="container shadowroot headingoffset=1">
<template shadowrootmode="open">
<h1><!-- Level 2, h1 + 1 --></h1>
<h2 headingreset><!-- Level 2, h2 (headingreset) --></h2>
</template>
</div>
<!-- Ensure slotted elements are correctly set -->
<div headingoffset=1 title="container shadowroot slotted headingoffset=1">
<template shadowrootmode="open">
<h1><!-- Level 2, h1 + 1 --></h1>
<h2><!-- Level 3, h2 + 1 --></h2>
<h3 headingreset><!-- Level 3, h3 (headingreset) --></h3>
<slot></slot>
</template>
<h1><!-- Level 2, h1 + 1 --></h1>
</div>
<!-- Ensure slotted elements respect their parents -->
<div headingoffset=1 title="container shadowroot slotted with container headingoffset=1">
<template shadowrootmode="open">
<h1><!-- Level 2, h1 + 1 --></h1>
<div headingoffset=1 title="container inside shadowroot headingoffset=1">
<slot></slot>
</div>
</template>
<h2><!-- Level 4, h2 + 1 + 1 --></h2>
<h4><!-- Level 6, h4 + 1 + 1 --></h4>
<h4 headingreset><!-- Level 4, h4 (headingreset) --></h4>
</div>
<!-- Ensure the slot can be decorated with headingoffset -->
<div headingoffset=1 title="container shadowroot slot with attr headingoffset=1">
<template shadowrootmode="open">
<h1><!-- Level 2, h1 + 1 --></h1>
<slot headingoffset=1></slot>
</template>
<h2><!-- Level 4, h2 + 1 + 1 --></h2>
</div>
<h1 headingoffset=1><!-- Level 2, h1 + 1 --></h1>
<h2 headingoffset=1><!-- Level 3, h2 + 1 --></h2>
<h1 headingoffset=2><!-- Level 3, h1 + 2--></h1>
<h2 headingoffset=2><!-- Level 4, h2 + 2 --></h2>
<h1 headingoffset=1 headingreset><!-- Level 2, h1 + 1 (headingreset) --></h1>
<h2 headingoffset=1 headingreset><!-- Level 3, h2 + 1 (headingreset) --></h2>
<h1 headingoffset=2 headingreset><!-- Level 3, h1 + 2 (headingreset) --></h1>
<h2 headingoffset=2 headingreset><!-- Level 4, h2 + 2 (headingreset) --></h2>
<h1 headingoffset=20 headingreset><!-- Level 9, h1 + 20 (clamped) --></h1>
<h2 headingoffset=20 headingreset><!-- Level 9, h2 + 20 (clamped) --></h2>
<h1 headingoffset=0 headingreset><!-- Level 1, h1 + 0 --></h1>
<h2 headingoffset=0 headingreset><!-- Level 2, h2 + 0 --></h2>
<div title="container with no attr">
<h1 headingoffset=1><!-- Level 2, h1 + 1 --></h1>
<h2 headingoffset=1><!-- Level 3, h2 + 1 --></h2>
<h1 headingoffset=1 headingreset><!-- Level 2, h1 + 1 --></h1>
<h2 headingoffset=1 headingreset><!-- Level 3, h2 + 1 --></h2>
<h1 headingoffset="-1" headingreset><!-- Level 1, h1 + (-1 clamped to 0) --></h1>
<h2 headingoffset="-1" headingreset><!-- Level 2, h2 + (-1 clamped to 0) --></h2>
</div>
<div headingreset title="many nested + and - values">
<div headingoffset="-1">
<div headingoffset="3">
<div headingoffset="-6">
<div headingoffset="1">
<h1><!-- Level 5, h1 + 1 + (-6 clamped ot 0) + 3 + (-1 clamped to 0) --></h1>
</div>
</div>
</div>
</div>
</div>
<h1 headingoffset="9" aria-level="3"><!-- Level 3 --></h1>
</body>
</html>