Skip to content

Conversation

MikeKingdom
Copy link
Collaborator

When a List allows clicking on items via the onClickItem, it sets focus on the List container for various reasons including accessibility and WCAG compliance. However that .focus() causes the the browser to automatically scroll the container in some cases even though it's not necessary in this situation.

What does this PR do?

This removes the call to set focus() on the List container on item click. It turns out this really doesn't seem to be needed anymore. Without this extra focus() call, clicking on an item does cause the container to get focus, and it does it without causing an extra scroll attempt to make sure it's visible (which isn't needed in this situation.)

Where should the reviewer start?

List.js

What testing has been done on this PR?

Manual, jest, existing storybook.

How should this be manually tested?

  • In storybook go to the List/onClickItem.
  • Make the window sized so that the list has a scrollbar
  • click on an item
    Before the change the List will scroll so it's at the very top of the viewport. After the change the List will not scroll (arrowing around or using the Tab key to navigate can still cause the viewport to scroll as needed.)

Do Jest tests follow these best practices?

  • screen is used for querying.
  • The correct query is used. (Refer to this list of queries)
  • userEvent is used in place of fireEvent.
  • asFragment() is used for snapshot testing.

Any background context you want to provide?

What are the relevant issues?

Fixes #6574

Screenshots (if appropriate)

Do the grommet docs need to be updated?

No

Should this PR be mentioned in the release notes?

Not required but...yes

Is this change backwards compatible or is it a breaking change?

Backwards compatible

@MikeKingdom MikeKingdom self-assigned this Jan 13, 2023
@MikeKingdom MikeKingdom added the bug issue that does not match design or documentation and requires code changes to address label Jan 13, 2023
Copy link
Collaborator

@taysea taysea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks Mike.

@ericsoderberghp ericsoderberghp merged commit bcbc572 into master Jan 13, 2023
@ericsoderberghp ericsoderberghp deleted the fix/list-click-scroll branch January 13, 2023 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug issue that does not match design or documentation and requires code changes to address
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cursor got misplaced and list automatically scrolls down when we have large number of items in List with Selection
4 participants