{"action":"closed","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/15079","repository_url":"https://api.github.com/repos/angular/angular.js","labels_url":"https://api.github.com/repos/angular/angular.js/issues/15079/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/15079/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/15079/events","html_url":"https://github.com/angular/angular.js/issues/15079","id":174381082,"number":15079,"title":"JAWS reads pre-compiled content","user":{"login":"NickHeiner","id":829827,"avatar_url":"https://avatars.githubusercontent.com/u/829827?v=3","gravatar_id":"","url":"https://api.github.com/users/NickHeiner","html_url":"https://github.com/NickHeiner","followers_url":"https://api.github.com/users/NickHeiner/followers","following_url":"https://api.github.com/users/NickHeiner/following{/other_user}","gists_url":"https://api.github.com/users/NickHeiner/gists{/gist_id}","starred_url":"https://api.github.com/users/NickHeiner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NickHeiner/subscriptions","organizations_url":"https://api.github.com/users/NickHeiner/orgs","repos_url":"https://api.github.com/users/NickHeiner/repos","events_url":"https://api.github.com/users/NickHeiner/events{/privacy}","received_events_url":"https://api.github.com/users/NickHeiner/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/browser:%20IE11","name":"browser: IE11","color":"207de5"},{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20ngAria","name":"component: ngAria","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20investigation","name":"needs: investigation","color":"444444"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/35","html_url":"https://github.com/angular/angular.js/milestones/Purgatory","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/35/labels","id":526241,"number":35,"title":"Purgatory","description":"This milestone is for issues and PRs that weren't accepted yet and we are waiting for more info from the submitter.\r\n\r\nFor issues this typically means that we weren't able to reproduce the issue or we haven't decided yet if a feature request is a good idea at all.\r\n\r\nFor PRs this means that the PR still needs a lot of work and we might not even be interested in merging it because it looks like a non-core feature. We are still waiting for more discussion within the team or more info from the contributor before making the final decision.","creator":{"login":"IgorMinar","id":216296,"avatar_url":"https://avatars.githubusercontent.com/u/216296?v=3","gravatar_id":"","url":"https://api.github.com/users/IgorMinar","html_url":"https://github.com/IgorMinar","followers_url":"https://api.github.com/users/IgorMinar/followers","following_url":"https://api.github.com/users/IgorMinar/following{/other_user}","gists_url":"https://api.github.com/users/IgorMinar/gists{/gist_id}","starred_url":"https://api.github.com/users/IgorMinar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IgorMinar/subscriptions","organizations_url":"https://api.github.com/users/IgorMinar/orgs","repos_url":"https://api.github.com/users/IgorMinar/repos","events_url":"https://api.github.com/users/IgorMinar/events{/privacy}","received_events_url":"https://api.github.com/users/IgorMinar/received_events","type":"User","site_admin":false},"open_issues":32,"closed_issues":863,"state":"open","created_at":"2014-01-04T01:20:50Z","updated_at":"2016-09-16T15:30:46Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2016-08-31T21:16:58Z","updated_at":"2016-09-16T15:30:46Z","closed_at":"2016-09-16T15:30:45Z","body":"**Do you want to request a *feature* or report a *bug*?**\r\nBug.\r\n\r\n**What is the current behavior?**\r\nJAWS reads the pre-compiled HTML content instead of the compiled HTML content. For instance, if I have the following HTML:\r\n\r\n```html\r\n<li ng-repeat=\"item in items\">{{item.name}}</li>\r\n```\r\n\r\nIf a new element that looks like `{name: 'Barcelona'}` is added to `items`, then JAWS will read \"left bracket left bracket item dot name right bracket right bracket\". \r\n\r\n**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar.**\r\n\r\n1. Use JAWS 16 / IE 11 / Windows 7 / Angular 1.5.8.\r\n\r\n2. Go to the [plunkr](http://plnkr.co/edit/fdYI3V8cJ1zFf4Ny4roT?p=preview) or [my demo](https://nickheiner.github.io/a11y-hacking/snippets/jaws-read-angular.html) or [plunkr using snapshot version of Angular](http://plnkr.co/edit/Zpo9AjbjAaO4hsPcvjyv?p=preview). (They should be equivalent, but I provided them all in case you prefer a plunkr, or in case the plunkr messes with JAWS in some way.)\r\n\r\n3. Click the \"Add item\" button.\r\n\r\n4. Listen to what JAWS reads for the newly added element. \r\n\r\n**What is the expected behavior?**\r\nI expect to hear \"Widget 1\" instead of \"left bracket left bracket item dot name right bracket right bracket\".\r\n\r\n**What is the motivation / use case for changing the behavior?**\r\nThis is the screen-reader equivalent of a raw `{{item.name}}` string being visible to the end-user.\r\n\r\n**Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.**\r\n* JAWS 16\r\n* IE 11\r\n* Windows 7\r\n* Angular 1.5.8 or snapshot as of the time this issue was filed\r\n\r\n**Other information (e.g. stacktraces, related issues, suggestions how to fix)**\r\nRelated, but more specific: https://github.com/angular/angular.js/issues/11466\r\n\r\nI thought that it may work to put `aria-hidden=\"true\"` on elements until they were compiled. I tried this on my [demo page](https://nickheiner.github.io/a11y-hacking/snippets/jaws-read-angular.html). You can try it for yourself by clicking the \"Add initially hidden item\" button. On VoiceOver, this does what I would expect, which is read the content after `aria-hidden` is removed. On JAWS, the content is never read. So this will not work.\r\n\r\nFundamentally, it seems that the problem is that content is being put into the DOM that is not compiled yet, and JAWS is picking it up. We need some way to either defer actually inserting content into the DOM until it's compiled, or tell JAWS that the content is not yet ready to be read.\r\n\r\nI'm happy to submit a PR for this, but it seemed sufficiently complicated that it was worth opening an issue to start a discussion first.\r\n\r\nThanks! I'm happy to provide any follow-up information as needed.\r\n"}}
{"actor":{"display_login":"gkalpak"}}