Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hidden elements read out in IE8 #3281

Closed
nvaccessAuto opened this issue Jun 14, 2013 · 13 comments
Closed

Hidden elements read out in IE8 #3281

nvaccessAuto opened this issue Jun 14, 2013 · 13 comments

Comments

@nvaccessAuto
Copy link

Reported by hh10k on 2013-06-14 03:32
Hi, I found that my hidden

s in IE8 (8.0.7601.17514) are read out by NVDA. Applying style="display:none; visibility:hidden" and aria-hidden="true" has no effect.

These elements are not read out in Firefox, Chrome and Opera.

@nvaccessAuto
Copy link
Author

Comment 1 by briang1 on 2013-06-14 08:21
Is this the case in later versions of IE as well. I notice quite few oddities in ie 8 that are not seen in other browsers with nvda. the strange table header behaviour on this very page, the apparent reading of some of the markup on some sites in places etc. I was just supposing it was down to the age of IE8 and perhaps its inability to pass on the right info to nvda. Maybe I'm wrong.

@nvaccessAuto
Copy link
Author

Comment 2 by jteh on 2013-06-20 02:41
Please provide a test case that doesn't work as you expect.

@nvaccessAuto
Copy link
Author

Comment 3 by Yossarian on 2014-06-13 11:11
I'm having the same problem with this bit of code.

    <div id="errorMsgContainer"  tabindex="-1" >
        <div id="errorMsg" style="display:none" >
            I am announced 
        </div>
    </div>

@nvaccessAuto
Copy link
Author

Comment 4 by mdcurran (in reply to comment 3) on 2014-06-15 22:47
Replying to Yossarian:
I have no idea if your testcase is the same as for the reporter, but specifically in reply to yours:
This is a pretty bad bug in Internet Explorer where its own name from content calculation for the div with tabIndex="-1" is picking up text from descendant elements even if they are display:none. All I could suggest is that you put aria-hidden="true" on the div with the tabindex="-1" and then screen readers won't render that at all.
Note that this also shows up another Internet Explorer bug where it is making divs with a tabindex of "-1" into full accessible objects like it would if you specified any ARIA properties.

@nvaccessAuto
Copy link
Author

Comment 5 by mdcurran on 2014-06-15 22:51
I'm guessing that this would be the same issue as the reporter as NVDA definitely does honor display:none and aria-hidden="true", so the only way NVDA can be rendering text is because Internet Explorer has given it to us on a higher node. Reporter: please report here if this is clearly not the issue you are having.

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Jun 19, 2014

Comment 6 by Yossarian on 2014-06-19 14:06
Hello, I've been trying different combinations to try and get around this issue, to no avail - if its any help, I have another code example in IE where text gets announced when it shouldn't - note both display:none and aria-hidden="true" are not honoured.

<div id="errorMsgContainer" role="alert" >
<div id="errorMsg" style="display:none" aria-hidden="true">

Exception:

I am announced


</div>

@nvaccessAuto
Copy link
Author

Comment 7 by jteh (in reply to comment 4) on 2014-07-09 03:59
Replying to mdcurran:

Note that this also shows up another Internet Explorer bug where it is making divs with a tabindex of "-1" into full accessible objects like it would if you specified any ARIA properties.

That bit isn't a bug. tabindex="-1" makes it focusable, so it needs an accessible.

While this is obviously a bug, the use case in comment:3 seems pretty broken to me. There's a focusable element containing no usable content. If it's focusable, it is interactive, so NVDA does everything it can to render something so that the user can access the element.

As for comment:6, everything in the alert is hidden, so why not put aria-hidden="true" on the alert itself? If not everything inside it is hidden, only the content that isn't hidden will be rendered anyway.

Mick, all of this said, I wonder whether we can restrict the "use name if node doesn't have useful content" bit to only nodes where the name could possibly be the content. That would fix the issue for divs, spans, alerts, etc. Thoughts?

@nvaccessAuto
Copy link
Author

Comment 8 by jteh (in reply to comment 7) on 2015-01-27 06:38
Replying to jteh:

Mick, all of this said, I wonder whether we can restrict the "use name if node doesn't have useful content" bit to only nodes where the name could possibly be the content.

We can do better than that now. We could only use the name if the node doesn't have useful content and the name came from the author (nameFromAuthor variable is true). Note that we'd need to reorganise the aria-label/labelledby name from author check so that nameFromAuthor gets set to true in that case.

That said, I still want to see good reasons as to why these cases would/should appear in the wild as per my questions in comment:7.

@ghost
Copy link

ghost commented Jul 13, 2016

I did a quick search and found few issue might be related.
#5233
#5320
#6097


I did some test on IE11 (Win10) and found that nvda will read out "Not read" by tab and focus. but skip them if browsing (up/down key)

<ol>
<li tabIndex=0 aria-describedby="id"><span class="text">Span1 Only</span></li>
<li tabIndex=0 ><span aria-describedby="id" class="text">Span2 Only</span></li>
<li tabIndex=0 ><span aria-label="x" class="text">Span3 Only</span></li>
<li tabIndex=0 aria-describedby="id"><span class="text">Span4 Only</span>3</li>
<li tabIndex=0 ><span aria-describedby="id" class="text">Span5 Only</span>2</li>
<li tabIndex=0 ><span aria-label="x" class="text">Span6 Only</span>1</li>
<li tabIndex=0 ><span aria-label="x" class="text">Span</span> and Another</li>
<li tabIndex=0 ><span aria-hidden="true" class="text">Not Read</span></li>
<li tabIndex=0 ><span aria-hidden="true" class="text">Not Read</span> Another Only</li>
<li tabIndex=0 >Before <span aria-hidden="true" class="text">Not Read</span></li>
<li tabIndex=0 ><span aria-hidden="true" class="text">Not Read</span>Middle1<span aria-hidden="true" class="text">Not Read</span></li>
<li tabIndex=0><span aria-hidden="true" class="text">Not Read</span>Middle2<span aria-hidden="true" class="text">Not Read</span></li>
</ol>
<span id="id">Labled by</span>

@Adriani90
Copy link
Collaborator

@feerrenrut is this issue a priority for NV Access to solve?

@Adriani90
Copy link
Collaborator

@hh10k, @Yossarian I guess this is still reproducible in IE. Right?

@Adriani90
Copy link
Collaborator

Aria hidden=true is covered in #5833

@LeonarddeR
Copy link
Collaborator

Given we haven't received any reply from the initial author on @Adriani90's request and Internet Explorer specific bugs have quite low priority, I"m going to close this for now. We can always reopen if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants