| <html> |
| <head> |
| <title>Empty and nested optgroup elements</title> |
| </head> |
| |
| <body> |
| |
| <select> |
| <!-- A div here is invalid. However, both IE and Firefox will walk into it |
| and enumerate the elements inside. --> |
| <div> |
| <option value="1">Item one</option> |
| |
| <!-- this group has no children. We /should/ render it because that matches |
| IE and FireFox. --> |
| <optgroup label="Group one"></optgroup> |
| |
| <!-- this group has a text node child. It should render the same as group one. --> |
| <optgroup label="Group two"> </optgroup> |
| |
| <!-- for an optgroup without a label, IE will show an empty, unselectable row. |
| Firefox doesn't show it. We /do/ show it because someone might be using |
| it as a spacer. --> |
| <!-- Additionally, this has been updated to test the crash fixed in |
| https://bugs.webkit.org/show_bug.cgi?id=26656. When setting the |
| font-size in the <optgroup> to extra large, opening the select element |
| must not leave any unpainted areas of overlapping text. --> |
| <optgroup style="font-size: x-large;"> |
| <option value="2">Item inside an optgroup without a label</option> |
| </optgroup> |
| |
| <!-- for an optgroup with an empty label, IE will show an empty, |
| unselectable row. Firefox doesn't show it. We /do/ show it because |
| someone might be using it as a spacer. --> |
| <optgroup label=""> |
| <option value="3">Item inside an optgroup with an empty label</option> |
| </optgroup> |
| |
| <div> |
| <option value="4"></option> |
| <optgroup label="Group three"> |
| <option value="5">Item two</option> |
| <!-- nested groups are disallowed by the spec, but IE and Firefox will |
| flatten the tree. We should match them. --> |
| <optgroup label="Nested group 1"></optgroup> |
| <optgroup label="Nested group 2"> |
| <optgroup label="Nested group 3"> |
| <option value="6">Item three</option> |
| </optgroup> |
| </optgroup> |
| </optgroup> |
| </div> |
| <option value="7">Item four</option> |
| </div> |
| </select> |
| |
| <p>Click on the select element above. When it drops down you should see the following items in the list:</p> |
| |
| <ul> |
| <li>Item one</li> |
| <li><b>Group one</b></li> |
| <li><b>Group two</b></li> |
| <li><i>(unselectable, empty row)</i></li> |
| <li>Item inside an optgroup without a label</li> |
| <li><i>(unselectable, empty row)</i></li> |
| <li>Item inside an optgroup with an empty label</li> |
| <li><i>(selectable, empty row)</i></li> |
| <li><b>Group three</b></li> |
| <li>Item two</li> |
| <li><b>Nested group 1</b></li> |
| <li><b>Nested group 2</b></li> |
| <li><b>Nested group 3</b></li> |
| <li>Item three</li> |
| <li>Item four</li> |
| </ul> |
| |
| <p>The text of the rows of the dropdown must not overlap each other.</p> |
| |
| </body> |
| </html> |