Skip to content

Conversation

@voiid
Copy link
Contributor

@voiid voiid commented Jan 25, 2021

WHY are these changes introduced?

Fixes #3811

Fixes accessibility issues on all uses of the Autocomplete component.

This PR includes the following:

  • Introduction of new ComboBox and ListBox components built by @dleroux with help from @AndrewMusgrave. These are currently subcomponents of Autocomplete for now, but our intention is to get these in a state (mostly missing documentation) to become top level components in the future. These follow the aria 1.2 spec.
  • Storybook story bug fixes to better showcase the component. New stories introduced for more complete documentation of the components capabilities.
  • New and improved Autocomplete component which supports much more intuitive visual representations for different states, much improved keyboard navigation and screen reader support.

Visual change audit

To maintain full backwards compatibility we did our absolute best to match all of the visuals of the component 1 to 1. There are a few intentional changes to help differentiate between hover and selection states but otherwise, everything should match.

The link below contains a comprehensive before and after comparison of just about every prop combination.

https://docs.google.com/spreadsheets/d/12X7igZB6jN3mzuhaXL9WK2SlK2HvRhJyAepCJkZRB7M/edit?userstoinvite=andrew.musgrave@shopify.com&ts=6011e9fc#gid=0

Render graphs

  • It's hard to tell the whole story of render times in screen shots - these shots are mainly displaying the render amounts which can we been above the flame graph to the right
Before After
old-1 new-1
old-2 new-2
old-3 new-3
old-4 new-4
old-5 new-5

Test coverage

The test coverage is near perfect. The failure stems from the old combobox being added as additions

8/8 Old 8/8 Old 8/10 Old - 2/10 New
Image 2021-02-01 at 12 25 49 PM Image 2021-02-01 at 12 26 53 PM Image 2021-02-01 at 12 28 33 PM

WHAT is this pull request doing?

How to 🎩

🖥 Local development instructions
🗒 General tophatting guidelines
📄 Changelog guidelines

Copy-paste this code in playground/Playground.tsx:
import React from 'react';
import {Page} from '../src';

export function Playground() {
  return (
    <Page title="Playground">
      {/* Add the code you want to test in here */}
    </Page>
  );
}

🎩 checklist

  • Tested on mobile
  • Tested on multiple browsers
  • Tested for accessibility
  • Updated the component's README.md with documentation changes
  • Tophatted documentation changes in the style guide
  • For visual design changes, pinged one of @ HYPD, @ mirualves, @ sarahill, or @ ry5n to update the Polaris UI kit

@github-actions
Copy link
Contributor

github-actions bot commented Jan 25, 2021

❌ Something went wrong with the Discoverability Github Action. This doesn't stop you from shipping your changes.

Details: RangeError: Maximum call stack size exceeded

We’ve been notified and will take a look.
If you need immediate help, ping @amrocha or @kaelig on Slack

@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 61d2402 to 432eb80 Compare January 28, 2021 21:36
@voiid voiid changed the title [WIP] [AutoComplete] Rebuild autocomplete internals to use new accessible components [AutoComplete] Rebuild autocomplete internals to use new accessible components Jan 29, 2021
"Autocomplete": {
"spinnerAccessibilityLabel": "Loading"
"spinnerAccessibilityLabel": "Loading",
"ellipsis": "{content}…"
Copy link
Member

Choose a reason for hiding this comment

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

We're moving the ellipsis prop to a translated string for internationalization

id?: string;
/** Collection of options to be listed */
options: ComboBoxProps['options'];
options: ComboBoxOldProps['options'];
Copy link
Member

Choose a reason for hiding this comment

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

We're keep the interface the same to prevent breaking changes

export const Autocomplete: React.FunctionComponent<AutocompleteProps> & {
ComboBox: typeof ComboBox;
TextField: typeof TextField;
ComboBox: typeof ComboBoxOld;
Copy link
Member

Choose a reason for hiding this comment

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

^

ComboBox: typeof ComboBox;
TextField: typeof TextField;
ComboBox: typeof ComboBoxOld;
TextField: typeof ComboBox.TextField;
Copy link
Member

Choose a reason for hiding this comment

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

Both text fields extend the base Polaris textfield without adding additional API's

@@ -1,377 +1,153 @@
import React, {useState, useEffect, useCallback} from 'react';
import React, {useState, useCallback, useMemo, Children} from 'react';
Copy link
Member

Choose a reason for hiding this comment

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

This component is a rebuild not a refactor so feel free to ignore the diff

@@ -0,0 +1,377 @@
import React, {useState, useEffect, useCallback} from 'react';
Copy link
Member

Choose a reason for hiding this comment

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

This is the old combobox - nothing has been changed

@@ -0,0 +1,661 @@
import React from 'react';
Copy link
Member

Choose a reason for hiding this comment

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

^

@@ -0,0 +1,122 @@
import React, {useMemo} from 'react';
Copy link
Member

Choose a reason for hiding this comment

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

We created a new action component to map the difference between the old & new API

@@ -0,0 +1,51 @@
import React, {memo} from 'react';
Copy link
Member

Choose a reason for hiding this comment

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

We create a new option component to map the differences between the old + new API

import {
createMount,
mount,
Element as ReactTestingElement,
Copy link
Member

Choose a reason for hiding this comment

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

Renaming because Element from the DOM is global

const IGNORE_WARN_REGEXES: RegExp[] = [
/Deprecation: <FilterControl \/> is deprecated\. This is a private component, do not use it\. This component might be removed in a minor version update\. Use <Filters \/> instead\./,
];
const IGNORE_WARN_REGEXES: RegExp[] = [/Deprecation:.*/];
Copy link
Member

Choose a reason for hiding this comment

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

Changed this to a more general deprecation warning to remove test clutter.

@voiid voiid marked this pull request as ready for review February 2, 2021 21:38
Copy link
Member

@alex-page alex-page left a comment

Choose a reason for hiding this comment

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

This looks good to me. I would strongly recommend getting these child components down to the global level as soon as possible. The tech debt of supporting them isn't high value.

@dleroux
Copy link
Contributor

dleroux commented Feb 5, 2021

Thank you much for doing this @voiid and @AndrewMusgrave

2 things I noticed while tophatting:

  1. when the list is scrollable using the keys keeps the list scrolled at the top. Was this an intentional change? I'd expect the focus to move the last visible item before scrolling.

scrollIntoView

  1. I see that we are still using actual inputs in the list when it's selectable. I was under the impression that ListBox should not contain any focusable elements. I believe the reasoning is that it can steal focus from the field and interfere with screen readers. I see that is not happening though so we might be ok?

@AndrewMusgrave
Copy link
Member

@dleroux The keyboard focus was an intentional change. We've fixed some bugs in the interaction and reverting to how it's currently in the autocomplete.

As for the checkbox @voiid reached out to @HYPD for confirmation on visuals. The new styles weren't a great indication that multi-select was possible. So we've reverted to the old visuals. The checkbox has a role of presentation so it'll be skipped by screen readers & if you've top-hatted that it cannot gain focus I think we've in the clear!

@voiid anything else you wanted to add?

@voiid
Copy link
Contributor Author

voiid commented Feb 5, 2021

@dleroux @AndrewMusgrave Just about covers it! Both changes were made to reduce friction with getting this change out the door.

For scrolling, I was thinking that we could revisit the scrolling behaviour with the team when we do the work to move the ComboBox and ListBox to the global level. Having it match the existing functionality for now is an effort to reduce any friction with getting this particular change out the door.

For checkboxes: The reason this change in particular was important is that while the new version communicated multiple selection very well once selections were made, having the visual checkboxes show does a better job of letting users know that multiple selection is possible before a selection is made. As Andrew mentioned it uses the presentation role so we should be safe on that front. The one negative here is that there could be an expectation that pressing the space key should select the option (in this case, it will actually enter a space into the text field and trigger a search change) but this matches the existing behaviour of the component (though the original had a weird bug that would only check on blur) so we thought it was acceptable for this version of the component. Something we should explore with usability testing for sure though!

@dleroux
Copy link
Contributor

dleroux commented Feb 8, 2021

just checked in the admin where we do use the Autocomplete and it does arrow down the list before scrolling into view. Where are you seeing this behavior?

My bad, I see it now. I still would consider this a bug in the behavior. Maybe check with a designer on Polaris to confirm this?

@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 4363388 to 75ba773 Compare February 10, 2021 15:16
Copy link
Contributor

@dleroux dleroux left a comment

Choose a reason for hiding this comment

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

I have not been able to tophat in web but in Polaris it works great 🎉

@voiid voiid force-pushed the autocomplete-accessibility-improvements branch 3 times, most recently from 8fb3a6f to f805a54 Compare February 25, 2021 15:38
@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from dafbc28 to 935a739 Compare June 2, 2021 15:19
@github-actions
Copy link
Contributor

github-actions bot commented Jun 2, 2021

size-limit report

Path Size
cjs 143.3 KB (+1.46% 🔺)
esm 97.17 KB (+2.37% 🔺)
esnext 142.83 KB (+2.79% 🔺)
css 34.54 KB (+2.3% 🔺)

@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 935a739 to 66ded1b Compare June 2, 2021 18:38
@shopify-shipit shopify-shipit bot temporarily deployed to alpha-release June 2, 2021 19:04 Inactive
@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 2b6215b to 227a6f5 Compare June 4, 2021 17:44
@alex-page alex-page force-pushed the main branch 5 times, most recently from 9552c69 to 10da401 Compare June 10, 2021 04:05
@voiid voiid changed the base branch from main to v7.0.0-release June 10, 2021 04:45
@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 00ea87f to b2449a6 Compare June 14, 2021 22:49
Copy link
Member

@AndrewMusgrave AndrewMusgrave left a comment

Choose a reason for hiding this comment

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

Looked over the docs for Autocomplete, ComboBox & ListBox. They're looking great 😍

# Autocomplete

The autocomplete component is an input field that provides selectable suggestions as a merchant types into it. It allows merchants to quickly search through and select from large collections of options.
The autocomplete component is an input field that provides selectable suggestions as a merchant types into it. It allows merchants to quickly search through and select from large collections of options. Convenience wrapper around the `ComboBox` and `ListBox` components with minor UI differences.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The autocomplete component is an input field that provides selectable suggestions as a merchant types into it. It allows merchants to quickly search through and select from large collections of options. Convenience wrapper around the `ComboBox` and `ListBox` components with minor UI differences.
The autocomplete component is an input field that provides selectable suggestions as a merchant types into it. It allows merchants to quickly search through and select from large collections of options. It's a convenience wrapper around the `ComboBox` and `ListBox` components with minor UI differences.

Comment on lines +38 to +40
- Traffic referrer source

#### Don’t

- Source
Copy link
Member

Choose a reason for hiding this comment

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

Same as above -

Suggested change
- Traffic referrer source
#### Don’t
- Source
- Traffic referrer source
#### Don’t
- Use interactive elements inside the list

## Examples

### Basic ListBox

Copy link
Member

Choose a reason for hiding this comment

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

It's not always done, but we'll want to add descriptions for the examples when possible

Suggested change
Basic implementation of a control element used to let merchants select options

### Basic ListBox

```jsx
function baseListBoxExample() {
Copy link
Member

Choose a reason for hiding this comment

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

We'll want to capitalize the functions since they're components

Suggested change
function baseListBoxExample() {
function BaseListBoxExample() {

Comment on lines +5 to +6
- list
- listbox
Copy link
Member

Choose a reason for hiding this comment

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

Are there anyone keywords we could add - maybe interactive list?

Comment on lines 398 to 399
The `ComboBox` component is based on the [ARIA 1.2 combobox pattern](https://www.w3.org/TR/wai-aria-practices-1.1/#combobox). It is a combination of a single-line
`TextField` and a `Popover`. The current implementation expects a [`ListBox`] component to be used.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The `ComboBox` component is based on the [ARIA 1.2 combobox pattern](https://www.w3.org/TR/wai-aria-practices-1.1/#combobox). It is a combination of a single-line
`TextField` and a `Popover`. The current implementation expects a [`ListBox`] component to be used.
The `ComboBox` component is based on the [ARIA 1.2 combobox pattern](https://www.w3.org/TR/wai-aria-practices-1.1/#combobox). It is a combination of a single-line `TextField` and a `Popover`. The current implementation expects a [`ListBox`] component to be used.


The `ComboBox` popover displays below the text field or other control by default so it is easy for merchants to discover and use. However, you can change the position with the `preferredPosition` prop.

ComboBox features can be challenging for merchants with visual, motor, and cognitive disabilities. Even when they’re built using best practices, these features can be difficult to use with some assistive technologies. Merchants should always be able to search, enter data, or perform other activities without relying on the combobox.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
ComboBox features can be challenging for merchants with visual, motor, and cognitive disabilities. Even when they’re built using best practices, these features can be difficult to use with some assistive technologies. Merchants should always be able to search, enter data, or perform other activities without relying on the combobox.
`ComboBox` features can be challenging for merchants with visual, motor, and cognitive disabilities. Even when they’re built using best practices, these features can be difficult to use with some assistive technologies. Merchants should always be able to search, enter data, or perform other activities without relying on the combobox.


#### Do

Use combobox as progressive enhancement to make the interface easier to use for most merchants.
Copy link
Member

Choose a reason for hiding this comment

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

I think these are lists

Suggested change
Use combobox as progressive enhancement to make the interface easier to use for most merchants.
- Use combobox as progressive enhancement to make the interface easier to use for most merchants.


#### Don’t

Require that merchants make a selection from the combobox to complete a task.
Copy link
Member

Choose a reason for hiding this comment

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

^

Suggested change
Require that merchants make a selection from the combobox to complete a task.
- Require that merchants make a selection from the combobox to complete a task.


### Keyboard support

- Give the combobox text input keyboard focus with the <kbd>tab</kbd> key (or <kbd>shift</kbd> + <kbd>tab</kbd> when tabbing backwards)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Give the combobox text input keyboard focus with the <kbd>tab</kbd> key (or <kbd>shift</kbd> + <kbd>tab</kbd> when tabbing backwards)
- Give the combobox's text input keyboard focus with the <kbd>tab</kbd> key (or <kbd>shift</kbd> + <kbd>tab</kbd> when tabbing backwards)

@voiid voiid requested a review from katihoeschen June 18, 2021 22:45
@katihoeschen
Copy link

Thanks for looping me in, @voiid. These docs are in great shape! I'm dropping my feedback below, but it’s mostly questions and thinking out loud. I'll be OOO Thursday and Friday this week, but we have a meeting on Monday in case you want to chat through any of this.

ListBox - intro:

  • Typo: part thepart of the.
  • Is composition a common enough concept that it won’t slow folks down? I don’t see mention of it in the current Polaris components.
  • Super nitpicky: it is possible seems to imply difficulty. Maybe Composition lets you customize or you can?

ListBox - content guidelines:

  • Typo: an Listboxa Listbox
  • Can you include an example of a clear and descriptive item?

ComboBox - intro:

  • Super nitpicky: The ComboBox component is a component that implementsThe ComboBox component implements

ComboBox - accessibility > structure, Autocomplete - accessibility > structure:

  • Would it be helpful to include recommended reasons or examples of using PreferredPosition to change the component position? Given the preceding sentence, it seems risky not to add some guardrails about changing the position.

Applies to all 3 docs:

  • Examples section: For the basic implementation, it might be worth calling out what makes it basic so the reader doesn’t have to compare against the other examples.
  • Accessibility section: I can see both pros and cons of having accessibility best practices called out in a separate section, but have you considered including that information in the relevant sections above instead? That might bring more attention to accessibility direction and make it seem less optional.
  • Throughout: I see the component names both in all lowercase letters (listbox, combobox) and camel caps (ListBox, ComboBox). Is there a logic for using one vs. the other?


# ListBox

The `ListBox` component is a list component that implements part the [Aria 1.2 ListBox specs](https://www.w3.org/TR/wai-aria-practices-1.2/#Listbox). It presents a list of options and allows users to select one or more of them. Through composition, it is possible to customize the presentation of these lists by using sections, headers or custom elements.

Choose a reason for hiding this comment

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

Suggested change
The `ListBox` component is a list component that implements part the [Aria 1.2 ListBox specs](https://www.w3.org/TR/wai-aria-practices-1.2/#Listbox). It presents a list of options and allows users to select one or more of them. Through composition, it is possible to customize the presentation of these lists by using sections, headers or custom elements.
The `ListBox` component is a list component that implements part of the [Aria 1.2 ListBox specs](https://www.w3.org/TR/wai-aria-practices-1.2/#Listbox).


# ListBox

The `ListBox` component is a list component that implements part the [Aria 1.2 ListBox specs](https://www.w3.org/TR/wai-aria-practices-1.2/#Listbox). It presents a list of options and allows users to select one or more of them. Through composition, it is possible to customize the presentation of these lists by using sections, headers or custom elements.

Choose a reason for hiding this comment

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

If you need more structure than the standard component offers, use composition to customize the presentation of these lists by using sections, headers, or custom elements.

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
@voiid voiid force-pushed the autocomplete-accessibility-improvements branch from 1e2567a to d40ba0b Compare July 5, 2021 23:42
@voiid voiid merged commit 9654c80 into v7.0.0-release Jul 14, 2021
@voiid voiid deleted the autocomplete-accessibility-improvements branch July 14, 2021 22:41
voiid added a commit that referenced this pull request Jul 15, 2021
* Upgrade to node v12 (#4191)

* Move to node v12

* Bump merge-deep from 3.0.2 to 3.0.3 (#4254)

Bumps [merge-deep](https://github.com/jonschlinkert/merge-deep) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/jonschlinkert/merge-deep/releases)
- [Commits](jonschlinkert/merge-deep@3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: merge-deep
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws in /examples/create-react-app-ts-react-testing (#4242)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/create-react-app (#4241)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/webpack (#4240)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update UNRELEASED.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react and react-dom to v16.14.0 (#4279)

Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>

* [TextField] Make autoComplete prop a required string (#4267)

* Require autoComplete prop on TextField

* switch to autoComplete="off" as default

* Adding off recommendation.

* Fix link formatting issue in TextField/README.md

Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>

* Update browserslist to match shopify/browserslist-config v3.0.0 (#4304)

- Desktop Safari version is "last 3 safari versions" - mapping to
  Safari 13.1
- ios Safari version is "ios >= 13.4" - mapping to ios_saf 13.4-13.7

* [AutoComplete] Rebuild autocomplete internals to use new accessible components (#3910)

* Rebuild AutoComplete internals to fix accessibility issues

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Fix some accessibility warnings on listbox stories

* Remove listbox section example

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

Co-authored-by: Alex Page <alex@alexpage.com.au>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>
Co-authored-by: Andrew McGoveran <andrew.mcgoveran@shopify.com>
Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>
Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
luanpy pushed a commit that referenced this pull request Jul 17, 2021
…omponents (#3910)

* Rebuild AutoComplete internals to fix accessibility issues

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Fix some accessibility warnings on listbox stories

* Remove listbox section example

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
voiid added a commit that referenced this pull request Aug 11, 2021
* Upgrade to node v12 (#4191)

* Move to node v12

* Bump merge-deep from 3.0.2 to 3.0.3 (#4254)

Bumps [merge-deep](https://github.com/jonschlinkert/merge-deep) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/jonschlinkert/merge-deep/releases)
- [Commits](jonschlinkert/merge-deep@3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: merge-deep
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws in /examples/create-react-app-ts-react-testing (#4242)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/create-react-app (#4241)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/webpack (#4240)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update UNRELEASED.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react and react-dom to v16.14.0 (#4279)

Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>

* [TextField] Make autoComplete prop a required string (#4267)

* Require autoComplete prop on TextField

* switch to autoComplete="off" as default

* Adding off recommendation.

* Fix link formatting issue in TextField/README.md

Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>

* Update browserslist to match shopify/browserslist-config v3.0.0 (#4304)

- Desktop Safari version is "last 3 safari versions" - mapping to
  Safari 13.1
- ios Safari version is "ios >= 13.4" - mapping to ios_saf 13.4-13.7

* [AutoComplete] Rebuild autocomplete internals to use new accessible components (#3910)

* Rebuild AutoComplete internals to fix accessibility issues

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Fix some accessibility warnings on listbox stories

* Remove listbox section example

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Update to node 12.22.0 and react-testing v3.2.0 (#4349)

* Update node version to 12.22.0

Released on 2021-03-30, this is the first version of node where
esmodules are considered stable. We're not relying on that yet, but this
sets the stage for the future.

* Update @shopify/react-testing to v3.2.0

This adds support for React 17 so future migration will be easier

* Remove deprecated languages (#4351)

* Update translation.yml

* Delete locales/hi.json

* Delete locales/ms.json

* format translation.yml as expected

Co-authored-by: translation-platform[bot] <35075727+translation-platform@users.noreply.github.com>

* Rename ComboBox and ListBox to Combobox and Listbox (#4379)

* Fix autocomlete docs

Co-authored-by: Alex Page <alex@alexpage.com.au>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>
Co-authored-by: Andrew McGoveran <andrew.mcgoveran@shopify.com>
Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>
Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
Co-authored-by: Kyle Durand <kyle.durand@shopify.com>
Co-authored-by: Al-Campuzano <32461613+Al-Campuzano@users.noreply.github.com>
Co-authored-by: translation-platform[bot] <35075727+translation-platform@users.noreply.github.com>
alex-page pushed a commit that referenced this pull request Aug 25, 2021
…omponents (#3910)

* Rebuild AutoComplete internals to fix accessibility issues

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Fix some accessibility warnings on listbox stories

* Remove listbox section example

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
alex-page pushed a commit that referenced this pull request Aug 25, 2021
* Upgrade to node v12 (#4191)

* Move to node v12

* Bump merge-deep from 3.0.2 to 3.0.3 (#4254)

Bumps [merge-deep](https://github.com/jonschlinkert/merge-deep) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/jonschlinkert/merge-deep/releases)
- [Commits](jonschlinkert/merge-deep@3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: merge-deep
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws in /examples/create-react-app-ts-react-testing (#4242)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/create-react-app (#4241)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ws from 6.2.1 to 6.2.2 in /examples/webpack (#4240)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update UNRELEASED.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react and react-dom to v16.14.0 (#4279)

Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>

* [TextField] Make autoComplete prop a required string (#4267)

* Require autoComplete prop on TextField

* switch to autoComplete="off" as default

* Adding off recommendation.

* Fix link formatting issue in TextField/README.md

Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>

* Update browserslist to match shopify/browserslist-config v3.0.0 (#4304)

- Desktop Safari version is "last 3 safari versions" - mapping to
  Safari 13.1
- ios Safari version is "ios >= 13.4" - mapping to ios_saf 13.4-13.7

* [AutoComplete] Rebuild autocomplete internals to use new accessible components (#3910)

* Rebuild AutoComplete internals to fix accessibility issues

 - Replace internals with new combobox and list box
 - Add support for legacy combobox
 - Allow TextField and Checkbox to leverage new combobox
 - Include additional test coverage for autocomplete and new components

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

* Fix some accessibility warnings on listbox stories

* Remove listbox section example

Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>

Co-authored-by: Alex Page <alex@alexpage.com.au>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ben Scott <227292+BPScott@users.noreply.github.com>
Co-authored-by: Andrew McGoveran <andrew.mcgoveran@shopify.com>
Co-authored-by: Genevieve Bulger <genevieve.bulger@shopify.com>
Co-authored-by: Andrew Musgrave <andrew.musgrave@shopify.com>
Co-authored-by: Daniel Leroux <daniel.leroux@shopify.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Autocomplete] Rebuild AutoComplete internals to fix accessibility issues

5 participants