English 中文(简体)
iOS上的语音在父母看得见后不关注子女元素
原标题:VoiceOver on iOS not giving focus to child element after parent becomes visible

我正在开发一个移动网页,用户在网页上点击按钮以切换默认隐藏内容的显示。这里仅举一个简单的例子:

<div role="button" id="button1">Show Link 1</div>

<div style="display:none" id="div1">
    <a href="#" id="link1">Link 1</a>
</div>

用#button1的开关, 我想显示隐藏的 div, 然后将焦点放在 Link 1 上。 这里的 JQuery 代码 :

$(document).ready(function() {      
    $( #button1 ).click(function() { 
        $( #div1 ).show(function() { 
            $( #link1 ).focus();
        })
    });
});

通常情况下, 此功能是有效的 。 我添加了一个红边框到 : 聚焦点使用 CSS, 这样我知道链接在可见后会得到焦点。 但是, 当链接被聚焦时, iOS 上的 VoiceOver 并不宣布它 。 VoiceOy 焦点仍然在按钮上 。 ( 我在运行 iOS 4. 3.3 的iPad 和运行 iOS 5.1.1 的 iPhone 4S 上测试过这一点 。

与上述假设相反,如果得到焦点的元素与刚才显示的相同元素相同,那么一切都很好,“VoiceOver”宣布了新焦点的链接。

<div role="button" id="button2">Show Link 2</div>

<div>
    <a style="display:none" href="#" id="link2">Link 2</a>
</div>

$(document).ready(function() {      
    $( #button2 ).click(function() { 
        $( #link2 ).show().focus();
    });
});

如果新焦点元素是刚刚显现出来的元素的子元素, 我怎么能让VoiceOver宣布新焦点元素?

问题回答

一般来说,这很管用。

如果这意味着“ 有时它有用, 有时它不使用相同的代码 ”, 我就会相信它存在一个时间问题。 是否在屏幕外的链接, 或者在它集中时正在动画? 尝试在最后一个回调中加一个第二个超时, 并查看您是否得到不同的结果 。 您会想要移动焦点 < em> 在 < / em > 完成任何过渡动画后 。

一般来说,这很管用。

如果这意味着“ 某些代码工作( 100%的时间), 其它类似代码不工作( 100%的时间), ” 您需要在 bugreport. apple. com 上输入一个错误 。

在这两种情况下,如果张贴一个可以测试问题情景的URL,也会有帮助。





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签