Skip to content
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

Add new prop to configure tree node selectable #3083

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lyy011lyy
Copy link

Fixes #

In some cases, we don't want the tree node to be selectable and keep refreshing itself, the issue description: #3081

So I'm thinking to introduce this new prop for the Tree component to make the selectable node configurable.

Additional description


CONTRIBUTOR checklist (do not remove)

Please complete for every pull request

  • First-time contributors should sign the Contributor License Agreement. It's a fancy way of saying that you are giving away your contribution to this project. If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
  • npm run lint:fix has been run and linting passes.
  • Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
  • Tests have been added for new props to prevent regressions in the future. See readme.
  • Review the appropriate Storybook stories. Open http://localhost:9001/.
  • Review tests are passing in the browser. Open http://localhost:8001/.
  • Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

  • CircleCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
  • Tests have been added for new props to prevent regressions in the future. See readme.
  • Review the appropriate Storybook stories. Open http://localhost:9001/.
  • The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
  • Review tests are passing in the browser. Open http://localhost:8001/.
  • Review markup conforms to SLDS by looking at DOM snapshot strings.
Required only if there are markup / UX changes
  • Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
  • Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
  • Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
  • While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

@welcome
Copy link

welcome bot commented Nov 29, 2022

Thanks for opening this pull request! 💯

This is a community-driven project, and we can't do it without your participation. Please check out our contributing guidelines and review the Contributor Checklist if you haven't already, to make sure everything is squared away. CircleCI will take about 10 minutes to run through the same items that are on the Contributor checklist with a pass/fail check below. Please fix any issues that cause CircleCI to fail or ask for clarification--we try, but sometimes the errors can be unclear.
A maintainer will try to respond within 7 days. If you haven’t heard anything by then, please bump this thread. To ensure codebase quality, large code line changes may take more than 2 weeks to review, but may take longer depending on the number of pull requests in the queue. Feel free to ask for a status update at any time--you won't be bothering anyone.
Once feedback has been given, please reply to the feedback giver once the feedback on been addressed, so that they can continue the review.
If you need a release while you are waiting for a code review, you can publish a built tag to your own fork. See directions in the release README.

@salesforce-cla
Copy link

Thanks for the contribution! Unfortunately we can't verify the commit author(s): Yaoyao Lin <y***@s***.com>. One possible solution is to add that email to your GitHub account. Alternatively you can change your commits to another email and force push the change. After getting your commits associated with your GitHub account, refresh the status of this Pull Request.

@interactivellama
Copy link
Contributor

@lyy011lyy Hi, I've been on work leave until this week. Elements with role treeitems were never meant to have clickable children which is what the screen capture looks like. Per ARIA Tree spec, there's only one focus at a time in a Tree widget https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tree_role#single_and_multiple_select_trees

I haven't looked over the PR yet, but am discussing what the Definition of Done for handling keyboard only use would look like in a Tree pattern that confirms to the ARIA spec, and I'm having difficulty with it. This library implements the patterns here: https://www.lightningdesignsystem.com/components/trees/ which are the scope of this component.

Based on the screenshot, you may be helped by the Tree Grid pattern which does allow multiple focusable elements.
https://www.lightningdesignsystem.com/components/tree-grid/#Single-select-headless-with-no-borders-and-a-selected-row
Screen Shot 2022-12-15 at 3 40 50 PM

A full TreeGrid pattern has not been added to this library. It would be great to add it. Here is a branch that is close to what you are looking for with a TreeGrid pattern + dropdown menu column. #2181

The interactions and accessibility were never completed though however in order to add it officially to this library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants