Commit 23d80195 authored by Dominic Mazzoni's avatar Dominic Mazzoni Committed by Commit Bot

More accessibility blink_unittests include the HTML element in the tree

This is one more step towards enabling the flag
AccessibilityExposeHTMLElementEnabled to include the HTML element in the
accessibility tree.

Bug: 1063155
Change-Id: I19a1e7e8daba1f2186db3428cfab5c0cc9ee41a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2427878
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: default avatarNektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811867}
parent 60c2cc21
...@@ -83,10 +83,11 @@ TEST_F(AccessibilitySelectionTest, FromCurrentSelection) { ...@@ -83,10 +83,11 @@ TEST_F(AccessibilitySelectionTest, FromCurrentSelection) {
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hel^lo.>\n" "++++++<Paragraph>\n"
"++++<Paragraph>\n" "++++++++<StaticText: Hel^lo.>\n"
"++++++<StaticText: How are you?>\n|", "++++++<Paragraph>\n"
"++++++++<StaticText: How are you?>\n|",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -105,20 +106,24 @@ TEST_F(AccessibilitySelectionTest, FromCurrentSelectionSelectAll) { ...@@ -105,20 +106,24 @@ TEST_F(AccessibilitySelectionTest, FromCurrentSelectionSelectAll) {
ASSERT_TRUE(ax_selection.IsValid()); ASSERT_TRUE(ax_selection.IsValid());
ASSERT_FALSE(ax_selection.Base().IsTextPosition()); ASSERT_FALSE(ax_selection.Base().IsTextPosition());
EXPECT_EQ(GetAXRootObject(), ax_selection.Base().ContainerObject());
AXObject* html_object = GetAXRootObject()->ChildAtIncludingIgnored(0);
ASSERT_NE(nullptr, html_object);
EXPECT_EQ(html_object, ax_selection.Base().ContainerObject());
EXPECT_EQ(0, ax_selection.Base().ChildIndex()); EXPECT_EQ(0, ax_selection.Base().ChildIndex());
ASSERT_FALSE(ax_selection.Extent().IsTextPosition()); ASSERT_FALSE(ax_selection.Extent().IsTextPosition());
EXPECT_EQ(GetAXRootObject(), ax_selection.Extent().ContainerObject()); EXPECT_EQ(html_object, ax_selection.Extent().ContainerObject());
EXPECT_EQ(GetAXRootObject()->ChildCountIncludingIgnored(), EXPECT_EQ(html_object->ChildCountIncludingIgnored(),
ax_selection.Extent().ChildIndex()); ax_selection.Extent().ChildIndex());
EXPECT_EQ( EXPECT_EQ(
"^++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "^++++<GenericContainer>\n"
"++++++<StaticText: Hello.>\n" "++++++<Paragraph>\n"
"++++<Paragraph>\n" "++++++++<StaticText: Hello.>\n"
"++++++<StaticText: How are you?>\n|", "++++++<Paragraph>\n"
"++++++++<StaticText: How are you?>\n|",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -200,10 +205,11 @@ TEST_F(AccessibilitySelectionTest, CancelSelect) { ...@@ -200,10 +205,11 @@ TEST_F(AccessibilitySelectionTest, CancelSelect) {
EXPECT_FALSE(Selection().GetSelectionInDOMTree().IsNone()); EXPECT_FALSE(Selection().GetSelectionInDOMTree().IsNone());
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hel^lo.>\n" "++++++<Paragraph>\n"
"++++<Paragraph>\n" "++++++++<StaticText: Hel^lo.>\n"
"++++++<StaticText: How are you?>\n|", "++++++<Paragraph>\n"
"++++++++<StaticText: How are you?>\n|",
GetSelectionText(AXSelection::FromCurrentSelection(GetDocument()))); GetSelectionText(AXSelection::FromCurrentSelection(GetDocument())));
} }
...@@ -260,8 +266,9 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInText) { ...@@ -260,8 +266,9 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInText) {
EXPECT_EQ(5, dom_selection.Extent().OffsetInContainerNode()); EXPECT_EQ(5, dom_selection.Extent().OffsetInContainerNode());
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hel^lo|>\n", "++++++<Paragraph>\n"
"++++++++<StaticText: Hel^lo|>\n",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -291,8 +298,9 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInTextWithWhiteSpace) { ...@@ -291,8 +298,9 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInTextWithWhiteSpace) {
EXPECT_EQ(10, dom_selection.Extent().OffsetInContainerNode()); EXPECT_EQ(10, dom_selection.Extent().OffsetInContainerNode());
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hel^lo|>\n", "++++++<Paragraph>\n"
"++++++++<StaticText: Hel^lo|>\n",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -335,10 +343,11 @@ TEST_F(AccessibilitySelectionTest, SetSelectionAcrossLineBreak) { ...@@ -335,10 +343,11 @@ TEST_F(AccessibilitySelectionTest, SetSelectionAcrossLineBreak) {
// selection focus marker '|' should be after it. // selection focus marker '|' should be after it.
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hello>\n" "++++++<Paragraph>\n"
"^++++++<LineBreak: \n>\n" "++++++++<StaticText: Hello>\n"
"|++++++<StaticText: |How are you.>\n", "^++++++++<LineBreak: \n>\n"
"|++++++++<StaticText: |How are you.>\n",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -383,10 +392,11 @@ TEST_F(AccessibilitySelectionTest, SetSelectionAcrossLineBreakInEditableText) { ...@@ -383,10 +392,11 @@ TEST_F(AccessibilitySelectionTest, SetSelectionAcrossLineBreakInEditableText) {
// selection focus marker '|' should be after it. // selection focus marker '|' should be after it.
EXPECT_EQ( EXPECT_EQ(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Paragraph>\n" "++++<GenericContainer>\n"
"++++++<StaticText: Hello>\n" "++++++<Paragraph>\n"
"^++++++<LineBreak: \n>\n" "++++++++<StaticText: Hello>\n"
"|++++++<StaticText: |How are you.>\n", "^++++++++<LineBreak: \n>\n"
"|++++++++<StaticText: |How are you.>\n",
GetSelectionText(ax_selection)); GetSelectionText(ax_selection));
} }
...@@ -476,15 +486,16 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInDisplayNone) { ...@@ -476,15 +486,16 @@ TEST_F(AccessibilitySelectionTest, SetSelectionInDisplayNone) {
// to DOM selections. // to DOM selections.
const std::string selection_text( const std::string selection_text(
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Main>\n" "++++<GenericContainer>\n"
"++++++<Paragraph>\n" "++++++<Main>\n"
"++++++++<StaticText: Before display:none.>\n" "++++++++<Paragraph>\n"
"++++++<Paragraph>\n" "++++++++++<StaticText: Before display:none.>\n"
"^++++++<Paragraph>\n" "++++++++<Paragraph>\n"
"++++++++<StaticText: In between two display:none elements.>\n" "^++++++++<Paragraph>\n"
"++++++<Paragraph>\n" "++++++++++<StaticText: In between two display:none elements.>\n"
"|++++++<Paragraph>\n" "++++++++<Paragraph>\n"
"++++++++<StaticText: After display:none.>\n"); "|++++++++<Paragraph>\n"
"++++++++++<StaticText: After display:none.>\n");
EXPECT_EQ(selection_text, GetSelectionText(ax_selection_shrink)); EXPECT_EQ(selection_text, GetSelectionText(ax_selection_shrink));
EXPECT_EQ(selection_text, GetSelectionText(ax_selection_extend)); EXPECT_EQ(selection_text, GetSelectionText(ax_selection_extend));
} }
...@@ -572,27 +583,29 @@ TEST_P(ParameterizedAccessibilitySelectionTest, SetSelectionAroundListBullet) { ...@@ -572,27 +583,29 @@ TEST_P(ParameterizedAccessibilitySelectionTest, SetSelectionAroundListBullet) {
if (LayoutNGEnabled()) { if (LayoutNGEnabled()) {
expectations = expectations =
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Main>\n" "++++<GenericContainer>\n"
"++++++<List>\n" "++++++<Main>\n"
"++++++++<ListItem>\n" "++++++++<List>\n"
"++++++++++<ListMarker: \xE2\x80\xA2 >\n" "++++++++++<ListItem>\n"
"^++++++++++++<StaticText: ^\xE2\x80\xA2 >\n" "++++++++++++<ListMarker: \xE2\x80\xA2 >\n"
"++++++++++<StaticText: Item 1.>\n" "^++++++++++++++<StaticText: ^\xE2\x80\xA2 >\n"
"++++++++<ListItem>\n" "++++++++++++<StaticText: Item 1.>\n"
"++++++++++<ListMarker: \xE2\x80\xA2 >\n" "++++++++++<ListItem>\n"
"++++++++++++<StaticText: \xE2\x80\xA2 >\n" "++++++++++++<ListMarker: \xE2\x80\xA2 >\n"
"++++++++++<StaticText: Item 2.|>\n"; "++++++++++++++<StaticText: \xE2\x80\xA2 >\n"
"++++++++++++<StaticText: Item 2.|>\n";
} else { } else {
expectations = expectations =
"++<GenericContainer>\n" "++<GenericContainer>\n"
"++++<Main>\n" "++++<GenericContainer>\n"
"++++++<List>\n" "++++++<Main>\n"
"++++++++<ListItem>\n" "++++++++<List>\n"
"++++++++++<ListMarker: \xE2\x80\xA2 >\n" "++++++++++<ListItem>\n"
"^++++++++++<StaticText: Item 1.>\n" "++++++++++++<ListMarker: \xE2\x80\xA2 >\n"
"++++++++<ListItem>\n" "^++++++++++++<StaticText: Item 1.>\n"
"++++++++++<ListMarker: \xE2\x80\xA2 >\n" "++++++++++<ListItem>\n"
"++++++++++<StaticText: Item 2.|>\n"; "++++++++++++<ListMarker: \xE2\x80\xA2 >\n"
"++++++++++++<StaticText: Item 2.|>\n";
} }
// The |AXSelection| should remain unaffected by any shrinking and should // The |AXSelection| should remain unaffected by any shrinking and should
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <iterator> #include <iterator>
#include "base/memory/scoped_refptr.h" #include "base/memory/scoped_refptr.h"
#include "third_party/blink/public/platform/file_path_conversion.h"
#include "third_party/blink/renderer/core/dom/character_data.h" #include "third_party/blink/renderer/core/dom/character_data.h"
#include "third_party/blink/renderer/core/dom/container_node.h" #include "third_party/blink/renderer/core/dom/container_node.h"
#include "third_party/blink/renderer/core/dom/node.h" #include "third_party/blink/renderer/core/dom/node.h"
...@@ -346,7 +347,7 @@ AccessibilitySelectionTest::AccessibilitySelectionTest( ...@@ -346,7 +347,7 @@ AccessibilitySelectionTest::AccessibilitySelectionTest(
void AccessibilitySelectionTest::SetUp() { void AccessibilitySelectionTest::SetUp() {
AccessibilityTest::SetUp(); AccessibilityTest::SetUp();
RuntimeEnabledFeatures::SetAccessibilityExposeHTMLElementEnabled(false); RuntimeEnabledFeatures::SetAccessibilityExposeHTMLElementEnabled(true);
} }
std::string AccessibilitySelectionTest::GetCurrentSelectionText() const { std::string AccessibilitySelectionTest::GetCurrentSelectionText() const {
...@@ -442,6 +443,11 @@ void AccessibilitySelectionTest::RunSelectionTest( ...@@ -442,6 +443,11 @@ void AccessibilitySelectionTest::RunSelectionTest(
} }
EXPECT_EQ(ax_file_contents, actual_ax_file_contents); EXPECT_EQ(ax_file_contents, actual_ax_file_contents);
// Uncomment these lines to write the output to the expectations file.
// TODO(dmazzoni): make this a command-line parameter.
// if (ax_file_contents != actual_ax_file_contents)
// base::WriteFile(WebStringToFilePath(ax_file), actual_ax_file_contents);
} }
ParameterizedAccessibilitySelectionTest:: ParameterizedAccessibilitySelectionTest::
......
...@@ -3,14 +3,15 @@ ...@@ -3,14 +3,15 @@
AXSelection from AX object anchored position in "Main": "", 1 to AX object anchored position in "Main": "", 4 AXSelection from AX object anchored position in "Main": "", 1 to AX object anchored position in "Main": "", 4
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Main> ++++<GenericContainer>
++++++<Paragraph> ++++++<Main>
++++++++<StaticText: Before aria-hidden.> ++++++++<Paragraph>
^++++++<Paragraph> ++++++++++<StaticText: Before aria-hidden.>
++++++++<StaticText: Aria-hidden 1.> ^++++++++<Paragraph>
++++++<Paragraph> ++++++++++<StaticText: Aria-hidden 1.>
++++++++<StaticText: In the middle of aria-hidden.> ++++++++<Paragraph>
++++++<Paragraph> ++++++++++<StaticText: In the middle of aria-hidden.>
++++++++<StaticText: Aria-hidden 2.> ++++++++<Paragraph>
|++++++<Paragraph> ++++++++++<StaticText: Aria-hidden 2.>
++++++++<StaticText: After aria-hidden.> |++++++++<Paragraph>
++++++++++<StaticText: After aria-hidden.>
...@@ -3,47 +3,49 @@ ...@@ -3,47 +3,49 @@
AXSelection from AX object anchored position in "List": "", 1 to AX object anchored position in "List": "", 3 AXSelection from AX object anchored position in "List": "", 1 to AX object anchored position in "List": "", 3
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<List> ++++<GenericContainer>
++++++<ListItem> ++++++<List>
++++++++<ListMarker: 1. > ++++++++<ListItem>
++++++++<StaticText: tic> ++++++++++<ListMarker: 1. >
^++++++<ListItem> ++++++++++<StaticText: tic>
++++++++<ListMarker: 2. > ^++++++++<ListItem>
++++++++<StaticText: tac> ++++++++++<ListMarker: 2. >
++++++<ListItem> ++++++++++<StaticText: tac>
++++++++<ListMarker: 3. > ++++++++<ListItem>
++++++++<StaticText: toe> ++++++++++<ListMarker: 3. >
|++++<List> ++++++++++<StaticText: toe>
++++++<ListItem> |++++++<List>
++++++++<StaticText: tic> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tic>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: tac> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tac>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: toe> ++++++++<ListItem>
++++++++++<StaticText: toe>
================================================================================ ================================================================================
AXSelection from AX object anchored position in "GenericContainer": "", 1 to AX object anchored position in "GenericContainer": "", 2 AXSelection from AX object anchored position in "GenericContainer": "", 1 to AX object anchored position in "GenericContainer": "", 2
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<List> ++++<GenericContainer>
++++++<ListItem> ++++++<List>
++++++++<ListMarker: 1. > ++++++++<ListItem>
++++++++<StaticText: tic> ++++++++++<ListMarker: 1. >
++++++<ListItem> ++++++++++<StaticText: tic>
++++++++<ListMarker: 2. > ++++++++<ListItem>
++++++++<StaticText: tac> ++++++++++<ListMarker: 2. >
++++++<ListItem> ++++++++++<StaticText: tac>
++++++++<ListMarker: 3. > ++++++++<ListItem>
++++++++<StaticText: toe> ++++++++++<ListMarker: 3. >
^++++<List> ++++++++++<StaticText: toe>
++++++<ListItem> ^++++++<List>
++++++++<StaticText: tic> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tic>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: tac> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tac>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: toe> ++++++++<ListItem>
++++++++++<StaticText: toe>
| |
\ No newline at end of file
...@@ -3,53 +3,55 @@ ...@@ -3,53 +3,55 @@
AXSelection from AX object anchored position in "List": "", 1 to AX object anchored position in "List": "", 3 AXSelection from AX object anchored position in "List": "", 1 to AX object anchored position in "List": "", 3
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<List> ++++<GenericContainer>
++++++<ListItem> ++++++<List>
++++++++<ListMarker: 1. > ++++++++<ListItem>
++++++++++<StaticText: 1. > ++++++++++<ListMarker: 1. >
++++++++<StaticText: tic> ++++++++++++<StaticText: 1. >
^++++++<ListItem> ++++++++++<StaticText: tic>
++++++++<ListMarker: 2. > ^++++++++<ListItem>
++++++++++<StaticText: 2. > ++++++++++<ListMarker: 2. >
++++++++<StaticText: tac> ++++++++++++<StaticText: 2. >
++++++<ListItem> ++++++++++<StaticText: tac>
++++++++<ListMarker: 3. > ++++++++<ListItem>
++++++++++<StaticText: 3. > ++++++++++<ListMarker: 3. >
++++++++<StaticText: toe> ++++++++++++<StaticText: 3. >
|++++<List> ++++++++++<StaticText: toe>
++++++<ListItem> |++++++<List>
++++++++<StaticText: tic> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tic>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: tac> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tac>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: toe> ++++++++<ListItem>
++++++++++<StaticText: toe>
================================================================================ ================================================================================
AXSelection from AX object anchored position in "GenericContainer": "", 1 to AX object anchored position in "GenericContainer": "", 2 AXSelection from AX object anchored position in "GenericContainer": "", 1 to AX object anchored position in "GenericContainer": "", 2
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<List> ++++<GenericContainer>
++++++<ListItem> ++++++<List>
++++++++<ListMarker: 1. > ++++++++<ListItem>
++++++++++<StaticText: 1. > ++++++++++<ListMarker: 1. >
++++++++<StaticText: tic> ++++++++++++<StaticText: 1. >
++++++<ListItem> ++++++++++<StaticText: tic>
++++++++<ListMarker: 2. > ++++++++<ListItem>
++++++++++<StaticText: 2. > ++++++++++<ListMarker: 2. >
++++++++<StaticText: tac> ++++++++++++<StaticText: 2. >
++++++<ListItem> ++++++++++<StaticText: tac>
++++++++<ListMarker: 3. > ++++++++<ListItem>
++++++++++<StaticText: 3. > ++++++++++<ListMarker: 3. >
++++++++<StaticText: toe> ++++++++++++<StaticText: 3. >
^++++<List> ++++++++++<StaticText: toe>
++++++<ListItem> ^++++++<List>
++++++++<StaticText: tic> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tic>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: tac> ++++++++<ListItem>
++++++<StaticText: > ++++++++++<StaticText: tac>
++++++<ListItem> ++++++++<StaticText: >
++++++++<StaticText: toe> ++++++++<ListItem>
++++++++++<StaticText: toe>
| |
\ No newline at end of file
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
AXSelection from AX text position in "StaticText": "Some text.", 0 to AX object anchored position in "Main": "", 2 AXSelection from AX text position in "StaticText": "Some text.", 0 to AX object anchored position in "Main": "", 2
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Main> ++++<GenericContainer>
++++++<Presentational> ++++++<Main>
^++++++++<StaticText: ^Some text.> ++++++++<Presentational>
++++++<GenericContainer> ^++++++++++<StaticText: ^Some text.>
|++++++<Paragraph> ++++++++<GenericContainer>
++++++<Paragraph> |++++++++<Paragraph>
++++++++<StaticText: After presentational paragraph.> ++++++++<Paragraph>
++++++++++<StaticText: After presentational paragraph.>
...@@ -4,27 +4,30 @@ AXSelection from AX text position in "StaticText": "Some text. ", 0 to AX text p ...@@ -4,27 +4,30 @@ AXSelection from AX text position in "StaticText": "Some text. ", 0 to AX text p
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<GenericContainer> ++++<GenericContainer>
++++++<Paragraph> ++++++<GenericContainer>
^++++++++<StaticText: ^Some text. > ++++++++<Paragraph>
++++++++<Image: Square> ^++++++++++<StaticText: ^Some text. >
|++++++++<StaticText: | More text.> ++++++++++<Image: Square>
|++++++++++<StaticText: | More text.>
================================================================================ ================================================================================
AXSelection from AX text position in "StaticText": "Some text. ", 10 to AX text position in "StaticText": " More text.", 1 AXSelection from AX text position in "StaticText": "Some text. ", 10 to AX text position in "StaticText": " More text.", 1
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<GenericContainer> ++++<GenericContainer>
++++++<Paragraph> ++++++<GenericContainer>
++++++++<StaticText: Some text.^ > ++++++++<Paragraph>
++++++++<Image: Square> ++++++++++<StaticText: Some text.^ >
++++++++<StaticText: |More text.> ++++++++++<Image: Square>
++++++++++<StaticText: |More text.>
================================================================================ ================================================================================
AXSelection from AX text position in "StaticText": "Some text. ", 11 to AX text position in "StaticText": " More text.", 11 AXSelection from AX text position in "StaticText": "Some text. ", 11 to AX text position in "StaticText": " More text.", 11
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<GenericContainer> ++++<GenericContainer>
++++++<Paragraph> ++++++<GenericContainer>
++++++++<StaticText: Some text. ^> ++++++++<Paragraph>
++++++++<Image: Square> ++++++++++<StaticText: Some text. ^>
++++++++<StaticText: More text.|> ++++++++++<Image: Square>
++++++++++<StaticText: More text.|>
...@@ -3,102 +3,106 @@ ...@@ -3,102 +3,106 @@
AXSelection from AX text position in "StaticText": "Sum", 0 to AX text position in "StaticText": "Subtraction", 11 AXSelection from AX text position in "StaticText": "Sum", 0 to AX text position in "StaticText": "Subtraction", 11
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Table> ++++<GenericContainer>
++++++<Row> ++++++<Table>
++++++++<ColumnHeader: Sum> ++++++++<Row>
^++++++++++<StaticText: ^Sum> ++++++++++<ColumnHeader: Sum>
++++++++<ColumnHeader: Subtraction> ^++++++++++++<StaticText: ^Sum>
++++++++++<StaticText: Subtraction|> ++++++++++<ColumnHeader: Subtraction>
++++++<Row> ++++++++++++<StaticText: Subtraction|>
++++++++<Cell: 10> ++++++++<Row>
++++++++++<StaticText: 10> ++++++++++<Cell: 10>
++++++++<Cell: 7> ++++++++++++<StaticText: 10>
++++++++++<StaticText: 7> ++++++++++<Cell: 7>
++++++<Row> ++++++++++++<StaticText: 7>
++++++++<Cell: 2> ++++++++<Row>
++++++++++<StaticText: 2> ++++++++++<Cell: 2>
++++++++<Cell: 4> ++++++++++++<StaticText: 2>
++++++++++<StaticText: 4> ++++++++++<Cell: 4>
++++++<Row> ++++++++++++<StaticText: 4>
++++++++<Cell: 12> ++++++++<Row>
++++++++++<StaticText: 12> ++++++++++<Cell: 12>
++++++++<Cell: 3> ++++++++++++<StaticText: 12>
++++++++++<StaticText: 3> ++++++++++<Cell: 3>
++++++++++++<StaticText: 3>
================================================================================ ================================================================================
AXSelection from AX text position in "StaticText": "7", 1 to AX text position in "StaticText": "10", 0 AXSelection from AX text position in "StaticText": "7", 1 to AX text position in "StaticText": "10", 0
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Table> ++++<GenericContainer>
++++++<Row> ++++++<Table>
++++++++<ColumnHeader: Sum> ++++++++<Row>
++++++++++<StaticText: Sum> ++++++++++<ColumnHeader: Sum>
++++++++<ColumnHeader: Subtraction> ++++++++++++<StaticText: Sum>
++++++++++<StaticText: Subtraction> ++++++++++<ColumnHeader: Subtraction>
++++++<Row> ++++++++++++<StaticText: Subtraction>
++++++++<Cell: 10> ++++++++<Row>
|++++++++++<StaticText: |10> ++++++++++<Cell: 10>
++++++++<Cell: 7> |++++++++++++<StaticText: |10>
++++++++++<StaticText: 7^> ++++++++++<Cell: 7>
++++++<Row> ++++++++++++<StaticText: 7^>
++++++++<Cell: 2> ++++++++<Row>
++++++++++<StaticText: 2> ++++++++++<Cell: 2>
++++++++<Cell: 4> ++++++++++++<StaticText: 2>
++++++++++<StaticText: 4> ++++++++++<Cell: 4>
++++++<Row> ++++++++++++<StaticText: 4>
++++++++<Cell: 12> ++++++++<Row>
++++++++++<StaticText: 12> ++++++++++<Cell: 12>
++++++++<Cell: 3> ++++++++++++<StaticText: 12>
++++++++++<StaticText: 3> ++++++++++<Cell: 3>
++++++++++++<StaticText: 3>
================================================================================ ================================================================================
AXSelection from AX text position in "StaticText": "2", 1 to AX text position in "StaticText": "4", 0 AXSelection from AX text position in "StaticText": "2", 1 to AX text position in "StaticText": "4", 0
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Table> ++++<GenericContainer>
++++++<Row> ++++++<Table>
++++++++<ColumnHeader: Sum> ++++++++<Row>
++++++++++<StaticText: Sum> ++++++++++<ColumnHeader: Sum>
++++++++<ColumnHeader: Subtraction> ++++++++++++<StaticText: Sum>
++++++++++<StaticText: Subtraction> ++++++++++<ColumnHeader: Subtraction>
++++++<Row> ++++++++++++<StaticText: Subtraction>
++++++++<Cell: 10> ++++++++<Row>
++++++++++<StaticText: 10> ++++++++++<Cell: 10>
++++++++<Cell: 7> ++++++++++++<StaticText: 10>
++++++++++<StaticText: 7> ++++++++++<Cell: 7>
++++++<Row> ++++++++++++<StaticText: 7>
++++++++<Cell: 2> ++++++++<Row>
++++++++++<StaticText: 2^> ++++++++++<Cell: 2>
++++++++<Cell: 4> ++++++++++++<StaticText: 2^>
|++++++++++<StaticText: |4> ++++++++++<Cell: 4>
++++++<Row> |++++++++++++<StaticText: |4>
++++++++<Cell: 12> ++++++++<Row>
++++++++++<StaticText: 12> ++++++++++<Cell: 12>
++++++++<Cell: 3> ++++++++++++<StaticText: 12>
++++++++++<StaticText: 3> ++++++++++<Cell: 3>
++++++++++++<StaticText: 3>
================================================================================ ================================================================================
AXSelection from AX text position in "StaticText": "12", 0 to AX text position in "StaticText": "3", 1 AXSelection from AX text position in "StaticText": "12", 0 to AX text position in "StaticText": "3", 1
================================================================================ ================================================================================
++<GenericContainer> ++<GenericContainer>
++++<Table> ++++<GenericContainer>
++++++<Row> ++++++<Table>
++++++++<ColumnHeader: Sum> ++++++++<Row>
++++++++++<StaticText: Sum> ++++++++++<ColumnHeader: Sum>
++++++++<ColumnHeader: Subtraction> ++++++++++++<StaticText: Sum>
++++++++++<StaticText: Subtraction> ++++++++++<ColumnHeader: Subtraction>
++++++<Row> ++++++++++++<StaticText: Subtraction>
++++++++<Cell: 10> ++++++++<Row>
++++++++++<StaticText: 10> ++++++++++<Cell: 10>
++++++++<Cell: 7> ++++++++++++<StaticText: 10>
++++++++++<StaticText: 7> ++++++++++<Cell: 7>
++++++<Row> ++++++++++++<StaticText: 7>
++++++++<Cell: 2> ++++++++<Row>
++++++++++<StaticText: 2> ++++++++++<Cell: 2>
++++++++<Cell: 4> ++++++++++++<StaticText: 2>
++++++++++<StaticText: 4> ++++++++++<Cell: 4>
++++++<Row> ++++++++++++<StaticText: 4>
++++++++<Cell: 12> ++++++++<Row>
^++++++++++<StaticText: ^12> ++++++++++<Cell: 12>
++++++++<Cell: 3> ^++++++++++++<StaticText: ^12>
++++++++++<StaticText: 3|> ++++++++++<Cell: 3>
++++++++++++<StaticText: 3|>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment