{"action":"created","issue":{"url":"https://api.github.com/repos/angular/material/issues/11422","repository_url":"https://api.github.com/repos/angular/material","labels_url":"https://api.github.com/repos/angular/material/issues/11422/labels{/name}","comments_url":"https://api.github.com/repos/angular/material/issues/11422/comments","events_url":"https://api.github.com/repos/angular/material/issues/11422/events","html_url":"https://github.com/angular/material/pull/11422","id":352321869,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5NjYzMTU2","number":11422,"title":"fix(chips): improve screen reader support","user":{"login":"Splaktar","id":3506071,"node_id":"MDQ6VXNlcjM1MDYwNzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3506071?v=4","gravatar_id":"","url":"https://api.github.com/users/Splaktar","html_url":"https://github.com/Splaktar","followers_url":"https://api.github.com/users/Splaktar/followers","following_url":"https://api.github.com/users/Splaktar/following{/other_user}","gists_url":"https://api.github.com/users/Splaktar/gists{/gist_id}","starred_url":"https://api.github.com/users/Splaktar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Splaktar/subscriptions","organizations_url":"https://api.github.com/users/Splaktar/orgs","repos_url":"https://api.github.com/users/Splaktar/repos","events_url":"https://api.github.com/users/Splaktar/events{/privacy}","received_events_url":"https://api.github.com/users/Splaktar/received_events","type":"User","site_admin":false},"labels":[{"id":310907048,"node_id":"MDU6TGFiZWwzMTA5MDcwNDg=","url":"https://api.github.com/repos/angular/material/labels/P2:%20required","name":"P2: required","color":"f9bda4","default":false},{"id":124700764,"node_id":"MDU6TGFiZWwxMjQ3MDA3NjQ=","url":"https://api.github.com/repos/angular/material/labels/a11y","name":"a11y","color":"d4c5f9","default":false},{"id":478730729,"node_id":"MDU6TGFiZWw0Nzg3MzA3Mjk=","url":"https://api.github.com/repos/angular/material/labels/cla:%20yes","name":"cla: yes","color":"0e8a16","default":false},{"id":155641634,"node_id":"MDU6TGFiZWwxNTU2NDE2MzQ=","url":"https://api.github.com/repos/angular/material/labels/in%20progress","name":"in progress","color":"bfe5bf","default":false},{"id":110904477,"node_id":"MDU6TGFiZWwxMTA5MDQ0Nzc=","url":"https://api.github.com/repos/angular/material/labels/type:%20bug","name":"type: bug","color":"000000","default":false},{"id":110904479,"node_id":"MDU6TGFiZWwxMTA5MDQ0Nzk=","url":"https://api.github.com/repos/angular/material/labels/type:%20enhancement","name":"type: enhancement","color":"84b6eb","default":false}],"state":"open","locked":false,"assignee":{"login":"Splaktar","id":3506071,"node_id":"MDQ6VXNlcjM1MDYwNzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3506071?v=4","gravatar_id":"","url":"https://api.github.com/users/Splaktar","html_url":"https://github.com/Splaktar","followers_url":"https://api.github.com/users/Splaktar/followers","following_url":"https://api.github.com/users/Splaktar/following{/other_user}","gists_url":"https://api.github.com/users/Splaktar/gists{/gist_id}","starred_url":"https://api.github.com/users/Splaktar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Splaktar/subscriptions","organizations_url":"https://api.github.com/users/Splaktar/orgs","repos_url":"https://api.github.com/users/Splaktar/repos","events_url":"https://api.github.com/users/Splaktar/events{/privacy}","received_events_url":"https://api.github.com/users/Splaktar/received_events","type":"User","site_admin":false},"assignees":[{"login":"Splaktar","id":3506071,"node_id":"MDQ6VXNlcjM1MDYwNzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3506071?v=4","gravatar_id":"","url":"https://api.github.com/users/Splaktar","html_url":"https://github.com/Splaktar","followers_url":"https://api.github.com/users/Splaktar/followers","following_url":"https://api.github.com/users/Splaktar/following{/other_user}","gists_url":"https://api.github.com/users/Splaktar/gists{/gist_id}","starred_url":"https://api.github.com/users/Splaktar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Splaktar/subscriptions","organizations_url":"https://api.github.com/users/Splaktar/orgs","repos_url":"https://api.github.com/users/Splaktar/repos","events_url":"https://api.github.com/users/Splaktar/events{/privacy}","received_events_url":"https://api.github.com/users/Splaktar/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/angular/material/milestones/63","html_url":"https://github.com/angular/material/milestone/63","labels_url":"https://api.github.com/repos/angular/material/milestones/63/labels","id":3413226,"node_id":"MDk6TWlsZXN0b25lMzQxMzIyNg==","number":63,"title":"1.1.11","description":"\"patch\" release with bug fixes, docs updates, and features, but no breaking changes (layout, css, APIs, etc)","creator":{"login":"Splaktar","id":3506071,"node_id":"MDQ6VXNlcjM1MDYwNzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3506071?v=4","gravatar_id":"","url":"https://api.github.com/users/Splaktar","html_url":"https://github.com/Splaktar","followers_url":"https://api.github.com/users/Splaktar/followers","following_url":"https://api.github.com/users/Splaktar/following{/other_user}","gists_url":"https://api.github.com/users/Splaktar/gists{/gist_id}","starred_url":"https://api.github.com/users/Splaktar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Splaktar/subscriptions","organizations_url":"https://api.github.com/users/Splaktar/orgs","repos_url":"https://api.github.com/users/Splaktar/repos","events_url":"https://api.github.com/users/Splaktar/events{/privacy}","received_events_url":"https://api.github.com/users/Splaktar/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":94,"state":"open","created_at":"2018-06-10T06:53:41Z","updated_at":"2018-09-27T00:54:16Z","due_on":"2018-09-28T07:00:00Z","closed_at":null},"comments":7,"created_at":"2018-08-20T22:41:33Z","updated_at":"2018-09-28T23:34:48Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/angular/material/pulls/11422","html_url":"https://github.com/angular/material/pull/11422","diff_url":"https://github.com/angular/material/pull/11422.diff","patch_url":"https://github.com/angular/material/pull/11422.patch"},"body":"<!-- \r\nFilling out this template is required! Do not delete it when submitting a Pull Request! Without this information, your Pull Request may be auto-closed.\r\n-->\r\n## PR Checklist\r\nPlease check that your PR fulfills the following requirements:\r\n- [x] The commit message follows [our guidelines](https://github.com/angular/material/blob/master/.github/CONTRIBUTING.md#-commit-message-format)\r\n- [ ] Tests for the changes have been added or this is not a bug fix / enhancement\r\n- [x] Docs have been added, updated, or were not required\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n<!-- Please check the one that applies to this PR using \"x\". -->\r\n```\r\n[x] Bugfix\r\n[x] Enhancement\r\n[ ] Documentation content changes\r\n[ ] Code style update (formatting, local variables)\r\n[ ] Refactoring (no functional changes, no api changes)\r\n[ ] Build related changes\r\n[ ] CI related changes\r\n[ ] Infrastructure changes\r\n[ ] Other... Please describe:\r\n```\r\n\r\n## What is the current behavior?\r\n- static chips are not accessible\r\n- contact chips have very poor accessibility\r\n- chips have numerous accessibility issues\r\n  - the index # of chips read to the user is always wrong and confusing\r\n  - there is no feedback when a chip is removed\r\n  - there is no way to provide different container instructions for an empty set of chips\r\n  - when a chip is selected, there are no instructions for how to delete it\r\n  - the delete buttons on chips are in the button accessibility tree, but they are confusing since they only say that pressing delete will remove the chip, but they don't indicate which chip they are associated with\r\n\r\n<!-- Please describe the current behavior that you are modifying and link to one or more relevant issues. -->\r\nIssue Number: \r\nFixes #2618\r\n\r\n## What is the new behavior?\r\n- make static chips accessible\r\n- add support for specifying input-aria-labelledby\r\n- add support for specifying input-aria-describedby\r\n- add a container-empty-hint API for use when there are no chips\r\n- add support for screen readers announcing chip removal and addition\r\n- add a md-added-message API to customize the chip creation announcement\r\n- add a md-removed-message API to customize the chip removal announcement\r\n- move chips-container-hint and delete-button-label to aria-labels\r\n- fixed use of aria-posinset which is 1 indexed, not 0 indexed\r\n- when a chip is removable, the label will include the delete-hint\r\n- add the same screen reader support to md-contact-chips as well\r\n- change autocomplete's aria-described by to input-aria-describedby\r\n  - fixes a conflict with duplicating messages in screen readers\r\n\r\n## Does this PR introduce a breaking change?\r\n```\r\n[ ] Yes\r\n[x] No\r\n```\r\n<!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. -->\r\n<!-- Note that breaking changes are highly unlikely to get merged to master unless the validation is clear and the use case is critical. -->\r\n\r\n## Other information\r\nYou can test these changes out here:\r\nhttps://angularjs-material.firebaseapp.com/demo/autocomplete\r\nhttps://angularjs-material.firebaseapp.com/demo/chips\r\n\r\nThis has been tested against: \r\n- [x] VoiceOver for macOS.\r\n- [x] ChromeVox on ChromeOS 69\r\n- [ ] Talkback for Android\r\n- [ ] JAWS\r\n- [x] NVDA\r\n\r\nI plan to do some more testing of this via Talkback for Android. \r\nI could use some help with testing on JAWS and NVDA."},"comment":{"url":"https://api.github.com/repos/angular/material/issues/comments/425594047","html_url":"https://github.com/angular/material/pull/11422#issuecomment-425594047","issue_url":"https://api.github.com/repos/angular/material/issues/11422","id":425594047,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNTU5NDA0Nw==","user":{"login":"Splaktar","id":3506071,"node_id":"MDQ6VXNlcjM1MDYwNzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3506071?v=4","gravatar_id":"","url":"https://api.github.com/users/Splaktar","html_url":"https://github.com/Splaktar","followers_url":"https://api.github.com/users/Splaktar/followers","following_url":"https://api.github.com/users/Splaktar/following{/other_user}","gists_url":"https://api.github.com/users/Splaktar/gists{/gist_id}","starred_url":"https://api.github.com/users/Splaktar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Splaktar/subscriptions","organizations_url":"https://api.github.com/users/Splaktar/orgs","repos_url":"https://api.github.com/users/Splaktar/repos","events_url":"https://api.github.com/users/Splaktar/events{/privacy}","received_events_url":"https://api.github.com/users/Splaktar/received_events","type":"User","site_admin":false},"created_at":"2018-09-28T23:34:48Z","updated_at":"2018-09-28T23:34:48Z","author_association":"MEMBER","body":"I made one tweak to make NVDA announce \"blank\" in one less instance.\r\n\r\nI also removed the deprecation and `aria-hidden` on the chip delete buttons. This is needed for Talkback for Android and VoiceOver on iOS (i.e. touch screen readers).\r\n\r\nI also added the `md-added-message` and announcement when a chip is added as mentioned in `2.` above."}}
{"actor":{"display_login":"Splaktar"}}