如果不支持Accessibility API,我如何获得窗口的标题,位置和大小?辅助功能检查员根本看不到它.说,这是在X11.app(X11->应用程序 - >终端)xterm窗口.
我的Mac App使用辅助功能API来移动(其他应用程序的)调整大小窗口.
我想将我的应用程序提交给MAS(Mac App Store).我已经读过要向MAS提交应用程序必须打开沙盒.
当我打开沙盒时,我的代码无法通过辅助功能API找到焦点窗口(始终返回NULL).问题是:辅助功能API不能与沙盒一起使用?
我注意到Mac App Store中有应用程序使用辅助功能API,现在不是强制沙盒吗?
提前致谢.
我有一个AXWebArea,我可以通过Accessibility API访问.有没有办法提取或重建用于创建AXWebArea的HTML?我正在调试的应用程序是在将HTML加载到AXWebArea之前修改HTML,我想了解它正在进行哪些修改.
我有一个问题说明,我需要在启用“可访问性”设置的情况下运行我的应用程序,以提供反馈意见,但是这里的问题是当我单击TextView其中具有“可扩展性”链接的,然后它会读取全文但不允许我可以在禁用可访问性的同时分别单击该Spannable文本,以使字符串可多跨度或链接可单击。
这是我要String点击的代码:
SpannableString ss = new SpannableString("Android is a Software stack");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
startActivity(new Intent(MyActivity.this, NextActivity.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
ss.setSpan(clickableSpan, 22, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud) android accessibility-api textview spannablestring android-accessibility
我有一个使用属性网格的C#应用程序.当我编辑ContentAlignment属性时,我收到以下错误消息:
桌面应用程序需要选择加入所有早期的可访问性改进,以获得后期改进.为此,请确保如果AppContext开关'Switch.UseLegacyAccessibilityFeatures.N'设置为'false',则'Switch.UseLegacyAccessibilityFeatures'和所有'Switch.UseLegacyAccessibilityFeatures.M'切换,当M <N时,评估为false为好.请注意,如果不存在特定可访问性改进集的交换机,则其值由目标框架版本确定.您可以通过添加这些开关并将其值设置为false来解决此问题.
这可能与将框架更新到4.6.1有关.
我第一次编辑属性时才看到此错误.
如何选择无障碍改进以查看此错误?
是否有任何其他方法可用于获取持续更新而不是 kAXWindowMovedNotification(可访问性 api - 通过 AXObserver 侦听),它只是在拖动开始时晚得多地发送通知?如果可能的话,我需要持续更新。
或者是否有任何替代方法来检测窗口移动(在另一个应用程序中)?实际上我只需要拖动的准确开始和结束时间。介于两者之间,我真的不在乎。kAXWindowMovedNotification 报告开始时间太晚。
我尝试使用 DashLane 等辅助服务或其他一些使用辅助服务的应用程序来填充 EditText 字段。
我正在使用聚焦事件视图。当 EditText 获得焦点时,事件开始但getSource()返回 null。
代码:
AccessibilityNodeInfo source = event.getSource();
if (source != null) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "TEST DATA");
clipboard.setPrimaryClip(clip);
source.performAction(AccessibilityNodeInfo.ACTION_PASTE);
Toast.makeText(MyAccessibilityService.this, "Pasted Successfully", Toast.LENGTH_LONG);
}
Run Code Online (Sandbox Code Playgroud)
...我已经尝试了一些其他方法,但出现了错误。那么这里有一个问题是为什么它返回 null?
Android清单
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<service android:name=".MyAccessibilityService" android:label="@string/app_name" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" android:resource="@xml/accessibility" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
辅助功能.xml
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_service_description"
android:packageNames="com.test.toasts2"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFlags="flagDefault"
android:accessibilityFeedbackType="feedbackSpoken"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity"
/>
Run Code Online (Sandbox Code Playgroud) 对于我的代码,我尝试AXMenuItems从AXMenu(AXUIElementRef)获取数组。菜单成功登录,这是我的代码:
NSArray *anArray = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.dock"];
AXUIElementRef anAXDockApp = AXUIElementCreateApplication([[anArray objectAtIndex:0] processIdentifier]);
CFTypeRef aChildren;
AXUIElementCopyAttributeValue(anAXDockApp, kAXChildrenAttribute, &aChildren);
SafeCFRelease(anAXDockApp);
CFTypeRef aMenu = CFArrayGetValueAtIndex(aChildren, 0);
NSLog(@"aMenu: %@", aMenu);
// Get menu items
CFTypeRef aMenuChildren;
AXUIElementCopyAttributeValue(aMenu, kAXVisibleChildrenAttribute, &aMenuChildren);
for (NSInteger i = 0; i < CFArrayGetCount(aMenuChildren); i++) {
AXUIElementRef aMenuItem = [self copyAXUIElementFrom:aMenu role:kAXMenuItemRole atIndex:i];
NSLog(@"aMenuItem: %@", aMenuItem); // logs (null)
CFTypeRef aTitle;
AXUIElementCopyAttributeValue(aMenuItem, kAXTitleAttribute, &aTitle);
if ([(__bridge NSString *)aTitle isEqualToString:@"New Window"] || [(__bridge NSString *)aTitle isEqualToString:@"New …Run Code Online (Sandbox Code Playgroud) 我正在努力实现一个AccessibilityService.我在下面分享了我的代码.当我从设置菜单打开我的辅助功能服务然后onServiceConnected()被调用但onAccessibiltyEvent()根本没有被调用.请指导我这个.
清单文件中的服务声明.
<service
android:name=".MyAccessibilityService"
android:enabled="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibility_service_config" />
</service>
Run Code Online (Sandbox Code Playgroud)
XML文件
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_service_description"
android:accessibilityEventTypes="typeAllMask"
android:canRequestFilterKeyEvents="true"
android:accessibilityFlags="flagDefault"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
/>
Run Code Online (Sandbox Code Playgroud)
MyAccessibiltyService.java
public class MyAccessibilityService extends AccessibilityService {
@Override
protected void onServiceConnected() {
super.onServiceConnected();
Log.d(TAG,"Service Connected");
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
System.out.println("Event Occurred");
Log.d(TAG, "onAccessibilityEvent: event=" + event);
AccessibilityNodeInfo nodeInfo = event.getSource();
if (null == nodeInfo) return;
}
@Override
public void onInterrupt() {
Log.d(TAG,"Accessibility Interrupted" );
} …Run Code Online (Sandbox Code Playgroud) android accessibility accessibility-api accessibilityservice android-accessibility
如何使用 Chrome 开发者工具查询网站的辅助功能树?有可能做到吗?我试图了解辅助功能树如何工作并帮助屏幕阅读器。
accessibility google-chrome accessibility-api google-chrome-devtools
我正在寻找 Mac OS X Accessibility API 来获取当前键盘(而不是鼠标)焦点位置的坐标。根据我在http://www.apple.com/accessibility/pdf/Mac_OS_X_Tiger_vpat.pdf找到的文档的第 2 页,这是可行的:
支持:Mac OS X 通过辅助功能 API 将当前键盘和鼠标焦点的位置公开给辅助技术,并在屏幕上提供焦点的视觉指示。
尽管有上面的声明,我似乎找不到 API 本身。我是一名经验丰富的开发人员(从 1982 年开始编码),但从未在 Mac OS X 上进行过开发;请温柔一点。
这个问题以前曾被问过,但没有一个解决方案有效。我不敢相信,在 SwiftUI 中,@Environment(\.sizeCategory) var sizeCategory没有类似的环境变量可供我们观察和打开吗?
如何确定鼠标是否指向(悬停在)窗口的最大化按钮,即使此窗口不属于我的应用程序.那有API吗?