Skip to content

Commit 7b85e25

Browse files
committed
adding all TtsSpan, no comp errors
1 parent 9d4b8a5 commit 7b85e25

File tree

6 files changed

+129
-15
lines changed

6 files changed

+129
-15
lines changed

Libraries/Components/View/ViewAccessibility.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,20 @@ export type AccessibilityRole =
1919
| 'togglebutton'
2020
| 'link'
2121
| 'verbatim'
22+
| 'cardinal'
23+
| 'ordinal'
24+
| 'decimal'
25+
| 'fraction'
26+
| 'cardinal'
27+
| 'measure'
28+
| 'time'
2229
| 'date'
30+
| 'telephone'
31+
| 'electronic'
32+
| 'decimal'
33+
| 'money'
34+
| 'digits'
35+
| 'verbatim'
2336
| 'search'
2437
| 'image'
2538
| 'keyboardkey'

ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,18 @@ public enum AccessibilityRole {
9999
BUTTON,
100100
TOGGLEBUTTON,
101101
LINK,
102-
VERBATIM,
102+
CARDINAL,
103+
ORDINAL,
104+
DECIMAL,
105+
FRACTION,
106+
MEASURE,
107+
TIME,
103108
DATE,
109+
TELEPHONE,
110+
ELECTRONIC,
111+
MONEY,
112+
DIGITS,
113+
VERBATIM,
104114
SEARCH,
105115
IMAGE,
106116
IMAGEBUTTON,
@@ -158,17 +168,34 @@ public static String getValue(AccessibilityRole role) {
158168
return "android.widget.AbsListView";
159169
case GRID:
160170
return "android.widget.GridView";
161-
case VERBATIM:
162-
return ReactTtsSpan.TYPE_VERBATIM;
171+
case ORDINAL:
172+
return ReactTtsSpan.TYPE_ORDINAL;
173+
case DECIMAL:
174+
return ReactTtsSpan.TYPE_DECIMAL;
175+
case FRACTION:
176+
return ReactTtsSpan.TYPE_FRACTION;
177+
case CARDINAL:
178+
return ReactTtsSpan.TYPE_CARDINAL;
179+
case MEASURE:
180+
return ReactTtsSpan.TYPE_MEASURE;
181+
case TIME:
182+
return ReactTtsSpan.TYPE_TIME;
163183
case DATE:
164184
return ReactTtsSpan.TYPE_DATE;
165-
case NONE:
185+
case TELEPHONE:
186+
return ReactTtsSpan.TYPE_TELEPHONE;
187+
case ELECTRONIC:
188+
return ReactTtsSpan.TYPE_ELECTRONIC;
189+
case MONEY:
190+
return ReactTtsSpan.TYPE_MONEY;
191+
case DIGITS:
192+
return ReactTtsSpan.TYPE_DIGITS;
193+
case VERBATIM:
194+
return ReactTtsSpan.TYPE_VERBATIM;
166195
case LINK:
167196
case SUMMARY:
168-
case HEADER:
169197
case ALERT:
170198
case COMBOBOX:
171-
case MENU:
172199
case MENUBAR:
173200
case MENUITEM:
174201
case PROGRESSBAR:

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTtsSpan.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,35 @@
1414

1515
/*
1616
* Wraps {@link TtsSpan} as a {@link ReactSpan}.
17+
* A span that supplies additional meta-data for the associated text intended
18+
* for text-to-speech engines. If the text is being processed by a
19+
* text-to-speech engine, the engine may use the data in this span in addition
20+
* to or instead of its associated text.
21+
*
22+
* Each instance of a TtsSpan has a type, for example {@link #TYPE_DATE}
23+
* or {@link #TYPE_MEASURE}. And a list of arguments, provided as
24+
* key-value pairs in a bundle.
25+
*
26+
* The inner classes are there for convenience and provide builders for each
27+
* TtsSpan type.
1728
*/
1829
public class ReactTtsSpan extends TtsSpan implements ReactSpan {
30+
1931
// supported TYPES in react-native
20-
public static Set<String> SUPPORTED_UNIT_TYPES = Set.of(TYPE_VERBATIM, TYPE_DATE);
32+
public static Set<String> SUPPORTED_UNIT_TYPES =
33+
Set.of(
34+
TYPE_CARDINAL,
35+
TYPE_ORDINAL,
36+
TYPE_DECIMAL,
37+
TYPE_FRACTION,
38+
TYPE_MEASURE,
39+
TYPE_TIME,
40+
TYPE_DATE,
41+
TYPE_TELEPHONE,
42+
TYPE_ELECTRONIC,
43+
TYPE_MONEY,
44+
TYPE_DIGITS,
45+
TYPE_VERBATIM);
2146

2247
public ReactTtsSpan(String type, PersistableBundle args) {
2348
super(type, args);

ReactCommon/react/renderer/attributedstring/conversions.h

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -573,10 +573,30 @@ inline std::string toString(const AccessibilityRole &accessibilityRole) {
573573
return "button";
574574
case AccessibilityRole::Link:
575575
return "link";
576-
case AccessibilityRole::Verbatim:
577-
return "verbatim";
578576
case AccessibilityRole::Date:
579577
return "date";
578+
case AccessibilityRole::Ordinal:
579+
return "ordinal";
580+
case AccessibilityRole::Decimal:
581+
return "decimal";
582+
case AccessibilityRole::Fraction:
583+
return "fraction";
584+
case AccessibilityRole::Cardinal:
585+
return "cardinal";
586+
case AccessibilityRole::Measure:
587+
return "measure";
588+
case AccessibilityRole::Time:
589+
return "time";
590+
case AccessibilityRole::Telephone:
591+
return "telephone";
592+
case AccessibilityRole::Electronic:
593+
return "electronic";
594+
case AccessibilityRole::Money:
595+
return "money";
596+
case AccessibilityRole::Digits:
597+
return "digits";
598+
case AccessibilityRole::Verbatim:
599+
return "verbatim";
580600
case AccessibilityRole::Search:
581601
return "search";
582602
case AccessibilityRole::Image:
@@ -652,6 +672,28 @@ inline void fromRawValue(
652672
result = AccessibilityRole::Verbatim;
653673
} else if (string == "date") {
654674
result = AccessibilityRole::Date;
675+
} else if (string == "cardinal") {
676+
result = AccessibilityRole::Cardinal;
677+
} else if (string == "ordinal") {
678+
result = AccessibilityRole::Ordinal;
679+
} else if (string == "decimal") {
680+
result = AccessibilityRole::Decimal;
681+
} else if (string == "fraction") {
682+
result = AccessibilityRole::Fraction;
683+
} else if (string == "measure") {
684+
result = AccessibilityRole::Measure;
685+
} else if (string == "time") {
686+
result = AccessibilityRole::Time;
687+
} else if (string == "telephone") {
688+
result = AccessibilityRole::Telephone;
689+
} else if (string == "electronic") {
690+
result = AccessibilityRole::Electronic;
691+
} else if (string == "money") {
692+
result = AccessibilityRole::Money;
693+
} else if (string == "digits") {
694+
result = AccessibilityRole::Digits;
695+
} else if (string == "verbatim") {
696+
result = AccessibilityRole::Verbatim;
655697
} else if (string == "search") {
656698
result = AccessibilityRole::Search;
657699
} else if (string == "image") {

ReactCommon/react/renderer/attributedstring/primitives.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,18 @@ enum class AccessibilityRole {
9696
None,
9797
Button,
9898
Link,
99-
Verbatim,
99+
Cardinal,
100+
Ordinal,
101+
Decimal,
102+
Fraction,
103+
Measure,
104+
Time,
100105
Date,
106+
Telephone,
107+
Electronic,
108+
Money,
109+
Digits,
110+
Verbatim,
101111
Search,
102112
Image,
103113
Imagebutton,

packages/rn-tester/js/examples/Text/TextAdjustsDynamicLayoutExample.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@ export default function TextAdjustsDynamicLayoutExample(props: {}): React.Node {
1717
return (
1818
<>
1919
<View>
20-
<Text accessible={true}>
20+
<Text accessibilityRole="date" accessible={true}>
2121
My number is{' '}
22-
<Text
23-
accessibilityRole="date"
24-
accessible={true}
25-
style={{backgroundColor: 'red'}}>
22+
<Text accessible={true} style={{backgroundColor: 'red'}}>
2623
02/07/1987
2724
</Text>
2825
.

0 commit comments

Comments
 (0)