bitstyles icon indicating copy to clipboard operation
bitstyles copied to clipboard

`role="separator"` is not a valid list child

Open angelikatyborska opened this issue 1 year ago • 1 comments

Elements with role separator are not valid children of lists (ul, ol).

I found this issue while working on https://github.com/bitcrowd/bitstyles/issues/414:

    Expected the HTML found at $('.u-list-none:nth-child(2)') to have no violations:
    <ul class="u-list-none">

    Received:
    <ul> and <ol> must only directly contain <li>, <script> or <template> elements (list)

    Fix all of the following:
      List element has direct children that are not allowed: [role=separator]

    You can find more information on this issue here:
    https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI

I saw that the documentation recommends adding <li role="separator"></li> as list children in dropdown menus. See screenshot:

Screenshot 2024-08-19 at 13-25-01 Atoms _ Dropdown _ Overview - Page ⋅ Storybook

I believe the semantically correct way of providing a visual separator between list elements would be to split content into two separate lists and style them accordingly, for example:

<div class="list-group">
  <ul>
    <li>..</li>
  </ul>
  <ul>
    <li>..</li>
  </ul>
</div>
.list-group *:is(ul, ol):not(:last-child)::after {
  // add some whitespace and a visual line
}

angelikatyborska avatar Aug 19 '24 11:08 angelikatyborska

Yes, we’d need to update in a few places:

  • update the documentation for this component
  • fix the HTML examples we give. They are currently not componentized, so we have static HTML repeated, we’d need to update them all
  • Update styling to apply the spacing & border currently applied to the separator

planktonic avatar Sep 02 '24 14:09 planktonic