У меня есть настроенное дерево специальных возможностей, использующее AccessibilityContainer и AccessibilityElements.Теперь я хочу добавить WKWebView в один из AccessibilityContainers в качестве AccessibilityElements.
Все работает, за исключением того, что если я хочу выбрать элемент доступности напрямую (перемещая палец по веб-представлению, чтобы найти элементы).
Я заменил WKWebView устаревшим UIWebView, и он работал безупречно.
И если у меня нет настраиваемого дерева, доступность WKWebView также работает отлично.
Я создал пример кода, чтобы воспроизвести проблему, то, что я делаю в этом коде, может не иметь смысла в реальном приложении, но оно копирует настройку, установленную в моем проекте.
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 100)];
label.backgroundColor = [UIColor yellowColor];
label.textColor = [UIColor blueColor];
label.text = @"Here is some text";
CGRect webViewRect = CGRectMake(0, 100, self.view.bounds.size.width, self.view.bounds.size.height-100);
WKWebView *webview = [[WKWebView alloc] initWithFrame:webViewRect];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://google.com"]]];
webview.accessibilityFrame = webViewRect;
[self.view addSubview:label];
[self.view addSubview:webview];
self.view.accessibilityElements = @[label, webview];
// Do any additional setup after loading the view, typically from a nib.
}
Я бы ожидал, что элементы в WKWebView могут быть выбраны инспектором специальных возможностей, но в этом случае их нет.