Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: ui/views/widget/native_widget_mac_accessibility_unittest.mm

Issue 2957743002: MacViews: Fix VoiceOver feedback in editable fields. (Closed)
Patch Set: kSelectableTextAttributes Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/accessibility/platform/ax_platform_node_mac.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <memory> 5 #include <memory>
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/mac/mac_util.h" 9 #include "base/mac/mac_util.h"
10 #import "base/mac/sdk_forward_declarations.h" 10 #import "base/mac/sdk_forward_declarations.h"
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 [ax_node accessibilitySetValue:[NSValue valueWithRange:NSMakeRange(0, 1000)] 529 [ax_node accessibilitySetValue:[NSValue valueWithRange:NSMakeRange(0, 1000)]
530 forAttribute:NSAccessibilitySelectedTextRangeAttribute]; 530 forAttribute:NSAccessibilitySelectedTextRangeAttribute];
531 EXPECT_EQ(gfx::Range(0, textfield->text().length()), 531 EXPECT_EQ(gfx::Range(0, textfield->text().length()),
532 textfield->GetSelectedRange()); 532 textfield->GetSelectedRange());
533 // Check just moving the cursor works, too. 533 // Check just moving the cursor works, too.
534 [ax_node accessibilitySetValue:[NSValue valueWithRange:NSMakeRange(5, 0)] 534 [ax_node accessibilitySetValue:[NSValue valueWithRange:NSMakeRange(5, 0)]
535 forAttribute:NSAccessibilitySelectedTextRangeAttribute]; 535 forAttribute:NSAccessibilitySelectedTextRangeAttribute];
536 EXPECT_EQ(gfx::Range(5, 5), textfield->GetSelectedRange()); 536 EXPECT_EQ(gfx::Range(5, 5), textfield->GetSelectedRange());
537 } 537 }
538 538
539 // Test parameterized text attributes.
540 TEST_F(NativeWidgetMacAccessibilityTest, TextParameterizedAttributes) {
541 AddChildTextfield(GetWidgetBounds().size());
542 id ax_node = A11yElementAtMidpoint();
543 EXPECT_TRUE(ax_node);
544
545 NSArray* attributes = [ax_node accessibilityParameterizedAttributeNames];
546 ASSERT_TRUE(attributes);
547
548 // Ensure the method names match.
549 for (NSString* attribute in attributes) {
550 SEL sel = NSSelectorFromString([attribute stringByAppendingString:@":"]);
551 EXPECT_TRUE([ax_node respondsToSelector:sel]);
552 }
553
554 NSNumber* line =
555 [ax_node accessibilityAttributeValue:
556 NSAccessibilityLineForIndexParameterizedAttribute
557 forParameter:@5];
558 EXPECT_TRUE(line);
559 EXPECT_EQ(0, [line intValue]);
560
561 EXPECT_NSEQ([NSValue valueWithRange:NSMakeRange(0, kTestStringLength)],
562 [ax_node accessibilityAttributeValue:
563 NSAccessibilityRangeForLineParameterizedAttribute
564 forParameter:line]);
565
566 // The substring "est st" of kTestStringValue.
567 NSValue* test_range = [NSValue valueWithRange:NSMakeRange(1, 6)];
568 EXPECT_NSEQ(@"est st",
569 [ax_node accessibilityAttributeValue:
570 NSAccessibilityStringForRangeParameterizedAttribute
571 forParameter:test_range]);
572 EXPECT_NSEQ(
573 @"est st",
574 [[ax_node
575 accessibilityAttributeValue:
576 NSAccessibilityAttributedStringForRangeParameterizedAttribute
577 forParameter:test_range] string]);
578
579 // Not implemented yet. Update these tests when they are.
580 EXPECT_NSEQ(nil,
581 [ax_node accessibilityAttributeValue:
582 NSAccessibilityRangeForPositionParameterizedAttribute
583 forParameter:@4]);
584 EXPECT_NSEQ(nil,
585 [ax_node accessibilityAttributeValue:
586 NSAccessibilityRangeForIndexParameterizedAttribute
587 forParameter:@4]);
588 EXPECT_NSEQ(nil,
589 [ax_node accessibilityAttributeValue:
590 NSAccessibilityBoundsForRangeParameterizedAttribute
591 forParameter:test_range]);
592 EXPECT_NSEQ(nil, [ax_node accessibilityAttributeValue:
593 NSAccessibilityRTFForRangeParameterizedAttribute
594 forParameter:test_range]);
595 EXPECT_NSEQ(
596 nil, [ax_node accessibilityAttributeValue:
597 NSAccessibilityStyleRangeForIndexParameterizedAttribute
598 forParameter:@4]);
599
600 // Non-text shouldn't have any parameterized attributes.
601 id ax_parent =
602 [ax_node accessibilityAttributeValue:NSAccessibilityParentAttribute];
603 EXPECT_TRUE(ax_parent);
604 EXPECT_FALSE([ax_parent accessibilityParameterizedAttributeNames]);
605 }
606
539 // Test performing a 'click' on Views with clickable roles work. 607 // Test performing a 'click' on Views with clickable roles work.
540 TEST_F(NativeWidgetMacAccessibilityTest, PressAction) { 608 TEST_F(NativeWidgetMacAccessibilityTest, PressAction) {
541 FlexibleRoleTestView* view = new FlexibleRoleTestView(ui::AX_ROLE_BUTTON); 609 FlexibleRoleTestView* view = new FlexibleRoleTestView(ui::AX_ROLE_BUTTON);
542 widget()->GetContentsView()->AddChildView(view); 610 widget()->GetContentsView()->AddChildView(view);
543 view->SetSize(GetWidgetBounds().size()); 611 view->SetSize(GetWidgetBounds().size());
544 612
545 id ax_node = A11yElementAtMidpoint(); 613 id ax_node = A11yElementAtMidpoint();
546 EXPECT_NSEQ(NSAccessibilityButtonRole, 614 EXPECT_NSEQ(NSAccessibilityButtonRole,
547 AttributeValueAtMidpoint(NSAccessibilityRoleAttribute)); 615 AttributeValueAtMidpoint(NSAccessibilityRoleAttribute));
548 616
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 EXPECT_NSEQ([NSValue valueWithRange:NSMakeRange(0, 0)], 727 EXPECT_NSEQ([NSValue valueWithRange:NSMakeRange(0, 0)],
660 [ax_node AXSelectedTextRange]); 728 [ax_node AXSelectedTextRange]);
661 729
662 EXPECT_EQ(kTestStringLength, [[ax_node AXNumberOfCharacters] intValue]); 730 EXPECT_EQ(kTestStringLength, [[ax_node AXNumberOfCharacters] intValue]);
663 EXPECT_NSEQ(([NSValue valueWithRange:{0, kTestStringLength}]), 731 EXPECT_NSEQ(([NSValue valueWithRange:{0, kTestStringLength}]),
664 [ax_node AXVisibleCharacterRange]); 732 [ax_node AXVisibleCharacterRange]);
665 EXPECT_EQ(0, [[ax_node AXInsertionPointLineNumber] intValue]); 733 EXPECT_EQ(0, [[ax_node AXInsertionPointLineNumber] intValue]);
666 } 734 }
667 735
668 } // namespace views 736 } // namespace views
OLDNEW
« no previous file with comments | « ui/accessibility/platform/ax_platform_node_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698