Conversation
🦋 Changeset detectedLatest commit: 2faad36 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
| } | ||
|
|
||
| onMount() { | ||
| this.disabledItems = new Map(); |
There was a problem hiding this comment.
Maybe a Set is better here since we just need to check if it is in the list and we are always setting as true.
Should we move this to the setLoading() function instead so it doesn't depend on the lifecycle initialization.
SOmething like:
setLoading() {
this.disabledItem ??= new Set()
const tbody = this.getEl('tbody')
}| setLoading() { | ||
| if (this.input.bodyState === "loading") { | ||
| if (this.tbody) { | ||
| requestAnimationFrame(() => { |
There was a problem hiding this comment.
We should call cancel request animation frame on unmount and on update.
ArtBlue
left a comment
There was a problem hiding this comment.
This looks to be missing a lot of the requirements for a fully disabled table in loading state.
Table in Loading State
When a table is fetching data for sorting, filtering, or pagination, a loading state should be displayed to indicate that the table is in the process of loading. This can be achieved by adding the table--loading-state class to the .table element.
Additionally, in the loading state, the module should be inaccessible to the user. This can be achieved by setting tabindex="-1" to the module container, and adding the inert attribute to the table inside the module. Since inert is not fully supported in older browsers, it is recommended to either use a polyfill or use JavaScript to disable all interactive elements inside the table when in loading state. Elements that support disabled should be disabled. Anchors should have their href attributes removed.
Here are some other steps to manually ensure the module is inaccessible:
All interactive elements inside table should be forced to NOT be focusable.
The module container should be forced to be unscrollable.
The progress bar should be forced to gain focus.
All interactive elements inside the table should be disabled.
The loading state should be displayed until the data is fully loaded. In addition to the loading state being set on the table, a progress bar expressive should be added to relay the loading state both visually and for screen readers. The live examples that follow use aria-live="off" to prevent the status element from proactively announcing new content. This is only for demo purposes, so that this documentation page does not overwhelm the viewer with example status updates. The aria-live override should not be included in implementations of this pattern.
Can you be specific which requirements are missing? |
saiponnada
left a comment
There was a problem hiding this comment.
Overall LGTM. minor suggestions.
|
Should be ready for review. Again, if there are any gaps in what skin has, please comment what is missing because I did follow those guidelines on this. |
ArtBlue
left a comment
There was a problem hiding this comment.
Looks great! @saiponnada , does this look good from the voiceover perspective?
saiponnada
left a comment
There was a problem hiding this comment.
LGTM! Thanks for taking time and making these changes.






Description
body-state. Was looking at using mode initially but that can removeselectedstate (can have load + selected`)isLoadingvariable to disable all interactive elements in templateReferences
#2328
Screenshots