标签: voiceover

覆盖 UITextField 中的 VoiceOver 消息 - iOS Accessibilty

我有一个包含“\xc2\xa324 pm”的 UITextField,但我希望画外音说“\xc2\xa324 每月”。通过设置:

\n\n
[textView setAccessibilityLabel:@"\xc2\xa324 per month"];\n
Run Code Online (Sandbox Code Playgroud)\n\n

VoiceOver 读出“\xc2\xa324 每月 \xc2\xa324 下午”。

\n\n

如何阻止 UITextField 中的消息被读出?

\n

accessibility ios voiceover uiaccessibility

5
推荐指数
1
解决办法
3608
查看次数

使用 VoiceOver 时未调用 JavaScript 函数

我创建并测试了一个包含对屏幕阅读器的完全支持的网页。它与 Mac 版 VoiceOver 配合使用效果很好,但当我尝试 iOS 版 VoiceOver 时,我发现了一个问题。当我双击触发链接时,click不会调用事件侦听器。相反,VO 只是重复aria-label我给出的内容,之后不会宣布“按钮”。当我禁用 VoiceOver 时,只需点击它即可。该链接的作用类似于按钮,而不是导航到另一个网页。这是 VoiceOver 错误还是我的标记或代码有问题?

document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('link').addEventListener('click', triggerFunction);
});

function triggerFunction() {
  alert('testing');
}
Run Code Online (Sandbox Code Playgroud)
<a id="link" href="javascript:void(0);" role="button" aria-label="My Trigger">Trigger Function</a>
Run Code Online (Sandbox Code Playgroud)

html javascript ios voiceover

5
推荐指数
1
解决办法
2405
查看次数

限制 VoiceOver 从 UILabel 读取的文本

我正在创建一个类似于“邮件”(或“消息”或“便笺”)的应用程序,它显示UITableViewCell包含消息预览的 s。文本通常无法全部放入 中UILabel,因此文本会被截断并自动显示省略号。这在我的应用程序中对于视力正常的用户来说效果很好,但是当使用 VoiceOver 时,会大声朗读整个text内容。UILabel这在邮件中不会发生 - VoiceOver 在到达省略号时停止播报文本。

如何在我的应用程序中获得与 Mail 相同的行为 - 强制 VoiceOver 在到达省略号时停止播报文本?

cell.messagePreviewLabel.text = a_potentially_really_long_string_here

uitableview uilabel ios voiceover

5
推荐指数
1
解决办法
1215
查看次数

UIAccessibilityFocus 协议不起作用

我想知道用户何时将焦点从辅助功能元素上移开。我尝试过重写accessibilityElementDidLoseFocus()accessibilityElementDidBecomeFocused()方法,但当我在 VoiceOver 辅助功能模式下导航到其他元素时,似乎没有调用这些方法。我不知道出了什么问题。我还应该做些什么来激活这些方法吗?

override func accessibilityElementDidBecomeFocused() {
    println("become focused")
}

override func accessibilityElementDidLoseFocus() {
    println("lose focus")
}
Run Code Online (Sandbox Code Playgroud)

目前的开发是在 iOS 8.1 上,使用 Swift。

accessibility voiceover uiaccessibility ios8 ios8.1

5
推荐指数
1
解决办法
2433
查看次数

iOS 旁白“未找到标题”

我有一个 UITableView,其中每个 UITableViewCell 有 2 个 UILabels:1 个标题和 1 个内容。标头的 AccessibilityTrait 设置为“标头”。使用 Accessibility Inspector 检查模拟器屏幕时,我能够正确地看到特征集。但是在实际设备上,当我将转子切换到“标题”时,它只找到导航栏标题,而在 UITableViewCells 中找不到标题。

accessibility ios voiceover

5
推荐指数
1
解决办法
935
查看次数

让 VoiceOver 说“向上或向下滑动以选择自定义操作,然后双击以激活”

我有UITextView两个不同的超链接。为了让 VoiceOver 打开时有机会在两个链接之间进行选择,我做了:

class MyTextView {
   override func awakeFromNib() {
       super.awakeFromNib()
       let str = "xxxxxx Option 1 yyyy Option 2"
       let attrStr = NSMutableAttributedString(str)
       let rangeOption1 = (str as NSString).range(of: "Option 1")
       let rangeOption2 = (str as NSString).range(of: "Option 2")
       attrStr.addAttributes([.link: "option1", range: rangeOption1])
       attrStr.addAttributes([.link: "option2", range: rangeOption2])

       self.attributedText = attrStr
   }

   override var isAccessibilityElement: Bool {
       get { return true }
       set {}
   }

   override var accessibilityLabel: String? {
       get { return "Link Options" }
       set {} …
Run Code Online (Sandbox Code Playgroud)

accessibility ios voiceover swift

5
推荐指数
1
解决办法
1215
查看次数

如何让 Mac Voiceover 将数字读取为数字而不是单个数字?

当我在 span 标签中呈现数字时,Mac Voiceover 正在读取单个数字而不是数字。例如,10 读作“一个零”而不是“十”。

我怎样才能让它读“十”而不是“一个零”?

我已经搜索了答案,但似乎大多数人都有相反的问题。像 speak 和 speak-as 这样的 CSS 属性似乎没有效果。

如果您想查看示例,请尝试加载以下笔并让 Mac Voiceover 读取它(要使用 Mac Voiceover,请使用 Command + f5)。

https://codepen.io/davescode/full/GeGLYv

或者从字面上看: <span>10</span>

macos accessibility screen-readers voiceover

5
推荐指数
1
解决办法
291
查看次数

可访问性自定义操作未在 Swift 中公布

当我添加accessibilityCustomActions到一个对象时,它可以在设备上正常工作,因为能够在操作中上下滑动并选择它们,但是没有关于“可用操作”的公告 - 我应该将其写入accessibilityLabel我?

我认为通过向我的对象添加自定义操作,它会自动宣布“可用的操作”,或“向上滑动以选择...”

accessibility voiceover swift

5
推荐指数
1
解决办法
767
查看次数

iOS 旁白阅读accessibilityIdentifier 而不是accessibilityLabel

VoiceOver 应该读取accessibilityLabel屏幕上任何辅助功能元素的属性。我有一个UIImageView调用mediaImageView,下面的代码在此视图上设置可访问性,并awakeFromNibUITableViewCell子类中调用。

imageVoiceOver不是阅读,而是阅读articleMediaCell_image哪个是accessibilityIdentifier. 谁能解释为什么会发生这种情况?

(在 iOS 13.3 设备上测试,无论是否设置自定义操作都会出现问题)

    mediaImageView.isAccessibilityElement = true
    mediaImageView.accessibilityIdentifier = "articleMediaCell_image"
    mediaImageView.accessibilityLabel = "image"

    mediaImageView.accessibilityCustomActions = [
        UIAccessibilityCustomAction(
            name: "expand to fullscreen",
            target: self,
            selector: #selector(imageTapped)
        )
    ]
Run Code Online (Sandbox Code Playgroud)

accessibility ios voiceover swift

5
推荐指数
1
解决办法
717
查看次数

MKAnnotationView 自定义标注对辅助功能(VoiceOver)不可见

我有一个MKAnnotationView子类并将其中的几个放在MKMapView. 该MKAnnotationView子类设置一些辅助元素是这样的:

func applyAccessibility() {
    
    self.isAccessibilityElement = true
    self.accessibilityTraits = [.none]
    
    self.accessibilityLabel = "Bus stop map pin"
    self.accessibilityValue = busStop.name
}
Run Code Online (Sandbox Code Playgroud)

VoiceOver 会读出固定在地图上的公交车站的名称。

然后,UIView当点击公交车站时,我使用一个子类作为标注视图。

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    
    if let annotation = view.annotation
    {
        if annotation is MKUserLocation
        {
            // This is our location marker
            return
        }
        
        busStopAnnotationCalloutView.setupForAnnotationView(view, delegate: self)
        
        view.addSubview(busStopAnnotationCalloutView)
        
        mapView.setCenter(annotation.coordinate, animated: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但是这个标注视图对 VoiceOver 完全不可见。

init标注视图中,我设置了:

isAccessibilityElement = true
accessibilityTraits = .none …
Run Code Online (Sandbox Code Playgroud)

accessibility mapkit mkmapview ios voiceover

5
推荐指数
1
解决办法
153
查看次数