chore: reduce w3c validation errors
Fixed
- Element
stopis missing required attributeoffset.
Some SVG files were missing the "offset" attribute in the "stop" element. This has been added with a value of 0, which doesn't cause any visible changes.
- Attribute
flexnot allowed on elementdivat this point.
The HeaderContainer component's shouldForwardProp function was not configured to prevent the flex property to be passed to the underlying DOM element. This has been corrected.
- Attribute
variantnot allowed on elementbuttonat this point.⚠️
We had to redo some work because we were using variants incorrectly. The IconButton component doesn't support variants, so it wasn't removing them from the DOM. This meant custom variants wouldn't work. I fixed this by moving the styles for the incorrect adornment and toolbar variants.
- Element
hrnot allowed as child of elementbuttonin this context.
The problem was caused by a ToolbarDivider component inside a tab. Moving it outside the tab caused a new problem with the textcolor attribute. Since the divider isn't interactive, I prevented the unnecessary attributes from being passed to the ToolbarDivider component.
- Element
pnot allowed as child of elementlabelin this context.
We were using paragraph elements within the labels of our toggle switches. Changed Typography to the span element instead of the default paragraph.
- Duplicate ID
path2.
The Clock icon had a path2 ID, since same icon was used in multiple places it caused conflicts because IDs must be unique within a document.
- Duplicate ID
a
Same as no.6 but caused by different SVG assets.
- Element
liis missing required attributearia-checked
The layout selector component was missing the aria-checked attribute, which is important for accessibility.
- Attribute
tracksnot allowed on elementdivat this point.
The shouldForwardProps function for the "thumbs" component in speaker view was not preventing the tracks property from being passed to the underlying DOM element.
- Element
divnot allowed as child of elementulin this context.
The layout selector was using a <div> to display the "sorting" label within a <ul> element. This has been corrected by wrapping the label in a <li> element for proper list structure.
- Attribute
hrefnot allowed on elementbuttonat this point
The main navigation component on the dashboard could be either a link <a> or a button <button>, but it was incorrectly passing the href attribute to both. This has been fixed so that only link elements receive the href.
- Bad value
dialogfor attributeroleon elementform
Our glitchtip dialog used form component as paper on which dialog role is applied out of the box.
- Attribute
colornot allowed on elementdivat this point.
Color property have not been prevented on the live dot in poll dialog.
- Element
liis missing required attributearia-checked.
Our votes and polls listing in the meeting header used menuitemradio as item role instead of menuitem
- Bad value
created Polls-headerfor attributeidon elementdiv: id must not contain whitespace
Our accordion item used option value as an id which contained whitespaces. Fixed it using kebabCase mapper.
- The value of the
forattribute of thelabelelement must be the ID of a non-hidden form control.
In meeting creating our select elements wrongly placed id.
- The
summaryattribute on thetableelement is obsolete.
Removed.
- Attribute
disablednot allowed on elementsvgat this point.
Microphone disabled icon had disabled attribute in the participant list for non-current speaker.
- Element
pnot allowed as child of elementlabelin this context.
In the user selection list, each name in the label was wrapped in the p element instead of span.
Remaining issues
- The
aria-controlsattribute must point to an element in the same document.
The aria-controls attribute needs to reference an element that already exists in the document. Since our popovers are dynamically added to the DOM, the aria-controls on the element that triggers the popover doesn't have a valid target when it initially loads. We need to find a different way to handle this for better accessibility.
- Element
divnot allowed as child of elementbuttonin this context
We can't place a <div> directly inside a <button> element. Since we're using both anchors and buttons (with buttons specifically for logout), and both use the "Collapse" component to hide text, we'll need to adjust how that component works so it doesn't use a <div> inside the button.
- Bad value
logfor attributeroleon elementul
This one is coming from our custom solution for the chat announcement. We have to come up with either different parent element or different approach.
- Element
divnot allowed as child of elementspanin this context. (Suppressing further errors from this subtree.)
The problem is with the breakout room section. We've put an "edit" button in the section header, which is made with a simple
Closes #2000