-
Notifications
You must be signed in to change notification settings - Fork 866
Selectable list #13460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Selectable list #13460
Conversation
Build Artifacts
|
|
Would you please test @radinamatic? |
MisRob
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code reads very easily, and uses all the approaches we agreed to use. I haven't noticed anything suspicious. Very nice work here @AlexVelezLl.
I think I will leave @nucleogenesis or @LianaHarris360 to be a main code reviewer.
As for a11y, we will see what @radinamatic's testing reveals. I haven't looked into details, however the overall approach is well aligned with what we all chatted about 😊
|
|
||
| function handleFocusNavigation(key) { | ||
| const diff = key === 'ArrowDown' ? 1 : -1; | ||
| // adding options.length and using modulo to wrap around |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏
| const { resultsCount$ } = searchAndFilterStrings; | ||
|
|
||
| watch(filteredOptions, newOptions => { | ||
| sendPoliteMessage(resultsCount$({ count: newOptions.length })); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
| type: Array, | ||
| required: true, | ||
| validator: options => | ||
| validateObject( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
nucleogenesis
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code changes LGTM - let's wait for @radinamatic & @pcenov to QA before approval, but everything codewise looks great!
pcenov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @AlexVelezLl - looks great, we'll further test it once it's fully integrated.
|
Great work @AlexVelezLl ! 👏🏽 If we could, there are these two important things to achieve that will, I believe, improve even the example on the APG site 😅 (that you implemented exactly): a) when user navigates to an option NVDA rightfully announces that it is an item in the list, and its position: However, even though the list label says Select an option, user is not explicitly informed that the option in focus is actionable/clickable, and I believe we should make that clearer. One possibility would be to make it that NVDA announces b) more surprisingly for me was to find (it is extant in the APG example too) that when the option is deselected, that change of state is not announced by NVDA 😕
I would expect that deselecting an option, when the Other possible points of improvement;
My suggestion would be to pass to the screen reader the
|
05f606e to
abc1f0c
Compare
|
Hi @radinamatic! Just pushed some changes that should fix the points you mentioned :). Would be great if you can take a look at it again 👐. |
|
I feel like Aladdin: all I have to do is express a wish and the genie @AlexVelezLl will grant it! 🤩 👏🏽 🙇🏽♀️
|
radinamatic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So great to see this, excellent job! 💯 🎉 ![]()



Summary
presentationalprop to KCheckbox to achieve the recommended listbox pattern. So we shouldnt merge this PR until Add presentational prop to KCheckbox kolibri-design-system#1044 is released.References
Closes #13408.
Reviewer guidance
I have created a dummy side panel in the facilities plugin > classes tab. So go to facilities > classes and check the list behaviour with dummy data.