Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

demos: Chips demo hits slow network resource. #9649

Closed
topherfangio opened this issue Sep 20, 2016 · 0 comments · Fixed by #9650
Closed

demos: Chips demo hits slow network resource. #9649

topherfangio opened this issue Sep 20, 2016 · 0 comments · Fixed by #9650
Labels
has: Pull Request A PR has been created to address this issue P1: urgent Urgent issues that should be addressed in the next minor or patch release. type: demos type: performance This issue is related to performance
Milestone

Comments

@topherfangio
Copy link
Contributor

Actual Behavior:

  • What is the issue? * When viewing the Chips Demos page, one of the demos (the contact chips demo) hits http://lorempixel.com to load fake user images. Sometimes, this request can take up to 10 seconds and is extremely irritating during development.
  • What is the expected behavior? We should use a faster service and/or cache the images somehow.

CodePen (or steps to reproduce the issue): *

  • CodePen Demo which shows your issue: https://material.angularjs.org/1.1.1/demo/chips
  • Details: Open the inspector and you will see a multitude of long-pending image requests (they usually download quickly, but the connection waiting seems to take forever).

Additionally, there are are warnings because the images are loaded over HTTP instead of HTTPS.

Angular Versions: *

  • Angular Version: All
  • Angular Material Version: 1.1.1

Additional Information:

  • Browser Type: * Chrome
  • Browser Version: * 53.0.2785.116
  • OS: * Mac & Windows
  • Stack Traces:

Shortcut to create a new CodePen Demo.
Note: * indicates required information. Without this information, your issue may be auto-closed.

Do not modify the titles or questions. Simply add your responses to the ends of the questions.
Add more lines if needed.

@topherfangio topherfangio added type: demos type: performance This issue is related to performance P3: important Important issues that really should be fixed when possible. labels Sep 20, 2016
@ThomasBurleson ThomasBurleson added P1: urgent Urgent issues that should be addressed in the next minor or patch release. and removed P3: important Important issues that really should be fixed when possible. labels Sep 20, 2016
@ThomasBurleson ThomasBurleson added this to the 1.1.2 milestone Sep 20, 2016
topherfangio added a commit to profoundry-us/material that referenced this issue Oct 20, 2016
Previously, chips had no, or very broken, support for accessibility.

Make many updates to fix broken functionality and add required features.

 - Remove existing `aria-hidden` attributes.

 - Dynamically apply required `role` and `aria-owns` attributes.

 - Ensure `tabindex` is set properly on all elements. Particularly,
   you can now tab to, and navigate through, a set of chips in
   readonly mode.

 - Provide new `input-aria-label` option to identify the inputs.

 - Provide new `container-hint` option used when the element is in
   readonly mode.

 - Provide new `md-chip-append-delay` option which controls the delay
   (in ms) before a user can add a new chip (fixes screen readers).

 - Fix issue with `delete-hint` never being read by screen readers
   because it was outside of the chip.

 - Fix keyboard navigation to properly wrap when moving both left
   or right.

 - Fix keyboard navigation when in readonly mode.

 - Fix issue where the wrong chip may be focused because the old
   chip was still in the DOM.

 - Fix issue where `onAdd` callback passed incorrect `$index` (it
   was 1-based instead of 0-based).

Additionally update the Chips docs with new Accessibility info and
a few other minor changes to the docs/demos.

 - Remove the "WORK IN PROGRESS" notice.

 - Fix mispelling of "maximum" on first chips demo.

 - Fix Contact Chips demo filtering.

 - Fix Contact Chips demo images to use new/faster service.

BREAKING CHANGES

**MAJOR**

In order to make the chips fully accessible and work properly across
a wide variety of screen readers, we have added a 300ms delay after
appending a chip before we re-focus the input.

This is necessary because some screen readers change operational modes
when the enter key is pressed inside of an input and this causes the
screen reader to move into "navigation" mode and no longer apply
keystrokes to the input.

Additionally, this ensures that the newly added chip is properly
announced to the screen readers.

You **may** alter this value with the new `md-chip-append-delay`
attribute, however using a value less than `300` can cause issues
on JAWS and NVDA and will make your application inaccessible to those
users.

Note 1: This issue only seems to affect chips appended when using the
`enter` key. If you override the `md-separator-keys` and disable the
`enter` key (and enable something like `,` or `;`), you may be able
to reduce this delay to `0` and achieve past functionality.

Note 2: This issue does not appear to affect VoiceOver or ChromeVox,
so if you are only targeting those users, you may be able to reduce
the delay to `0`.

**MINOR**

We consider the following to be minor breaking changes since we never
expected these attributes/elements to be utilized by developers.

Nonetheless, we want to ensure that they are documented.

 - The `role` of the `.md-chip-content` has been modified from `button`
   to `option` so that it works with the new `listbox` role of it's
   parent.

   If you rely on this role being `button`, you should update your code
   accordingly.

- The delete hint on removable chips now resides inside of the
  `div.md-chip-content` rather than the parent `md-chip` element where
  it could not be read by screen readers.

  If you interact with this element (in CSS or JS) please update your
  selectors/code to account for the new DOM hierarchy.

Fixes angular#9391. Fixes angular#9556. Fixes angular#8897. Fixes angular#8867. Fixes angular#9649.
@ThomasBurleson ThomasBurleson added the has: Pull Request A PR has been created to address this issue label Nov 29, 2016
topherfangio added a commit to profoundry-us/material that referenced this issue Jan 4, 2017
Previously, chips had no, or very broken, support for accessibility.

Make many updates to fix broken functionality and add required features.

 - Remove existing `aria-hidden` attributes.

 - Dynamically apply required `role` and `aria-owns` attributes.

 - Ensure `tabindex` is set properly on all elements. Particularly,
   you can now tab to, and navigate through, a set of chips in
   readonly mode.

 - Provide new `input-aria-label` option to identify the inputs.

 - Provide new `container-hint` option used when the element is in
   readonly mode.

 - Provide new `md-chip-append-delay` option which controls the delay
   (in ms) before a user can add a new chip (fixes screen readers).

 - Fix issue with `delete-hint` never being read by screen readers
   because it was outside of the chip.

 - Fix keyboard navigation to properly wrap when moving both left
   or right.

 - Fix keyboard navigation when in readonly mode.

 - Fix issue where the wrong chip may be focused because the old
   chip was still in the DOM.

 - Fix issue where `onAdd` callback passed incorrect `$index` (it
   was 1-based instead of 0-based).

Additionally update the Chips docs with new Accessibility info and
a few other minor changes to the docs/demos.

 - Remove the "WORK IN PROGRESS" notice.

 - Fix mispelling of "maximum" on first chips demo.

 - Fix Contact Chips demo filtering.

 - Fix Contact Chips demo images to use new/faster service.

BREAKING CHANGES

**MAJOR**

In order to make the chips fully accessible and work properly across
a wide variety of screen readers, we have added a 300ms delay after
appending a chip before we re-focus the input.

This is necessary because some screen readers change operational modes
when the enter key is pressed inside of an input and this causes the
screen reader to move into "navigation" mode and no longer apply
keystrokes to the input.

Additionally, this ensures that the newly added chip is properly
announced to the screen readers.

You **may** alter this value with the new `md-chip-append-delay`
attribute, however using a value less than `300` can cause issues
on JAWS and NVDA and will make your application inaccessible to those
users.

Note 1: This issue only seems to affect chips appended when using the
`enter` key. If you override the `md-separator-keys` and disable the
`enter` key (and enable something like `,` or `;`), you may be able
to reduce this delay to `0` and achieve past functionality.

Note 2: This issue does not appear to affect VoiceOver or ChromeVox,
so if you are only targeting those users, you may be able to reduce
the delay to `0`.

**MINOR**

We consider the following to be minor breaking changes since we never
expected these attributes/elements to be utilized by developers.

Nonetheless, we want to ensure that they are documented.

 - The `role` of the `.md-chip-content` has been modified from `button`
   to `option` so that it works with the new `listbox` role of it's
   parent.

   If you rely on this role being `button`, you should update your code
   accordingly.

- The delete hint on removable chips now resides inside of the
  `div.md-chip-content` rather than the parent `md-chip` element where
  it could not be read by screen readers.

  If you interact with this element (in CSS or JS) please update your
  selectors/code to account for the new DOM hierarchy.

Fixes angular#9391. Fixes angular#9556. Fixes angular#8897. Fixes angular#8867. Fixes angular#9649.
@kara kara closed this as completed in #9650 Jan 4, 2017
kara pushed a commit that referenced this issue Jan 4, 2017
davidenochk pushed a commit to davidenochk/material that referenced this issue Feb 3, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
has: Pull Request A PR has been created to address this issue P1: urgent Urgent issues that should be addressed in the next minor or patch release. type: demos type: performance This issue is related to performance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants