From d03604797f8f59b1c6dd40689a8174e29f179acd Mon Sep 17 00:00:00 2001 From: toter3 Date: Wed, 22 Mar 2023 14:01:09 +0200 Subject: [PATCH] add accessibility and testId props and virtual nodes to support e2e tests tools (#2001) PR adding accessibility and testId props and virtual nodes to support e2e tests tools and provide general accessibility support. Co-authored-by: yonatan.altaraz Co-authored-by: galkahana --- .../horcrux/svg/RenderableViewManager.java | 15 +++++++ .../main/java/com/horcrux/svg/SvgView.java | 11 +++++ .../java/com/horcrux/svg/VirtualView.java | 44 +++++++++++++++++++ apple/RNSVGNode.h | 3 ++ apple/RNSVGNode.mm | 12 +++++ apple/ViewManagers/RNSVGNodeManager.mm | 4 ++ src/lib/extract/extractProps.ts | 18 ++++++++ src/lib/extract/types.ts | 3 ++ 8 files changed, 110 insertions(+) diff --git a/android/src/main/java/com/horcrux/svg/RenderableViewManager.java b/android/src/main/java/com/horcrux/svg/RenderableViewManager.java index d6ca09be..b28a18f2 100644 --- a/android/src/main/java/com/horcrux/svg/RenderableViewManager.java +++ b/android/src/main/java/com/horcrux/svg/RenderableViewManager.java @@ -480,6 +480,21 @@ class VirtualViewManager extends ViewGroupManager void; + testID?: string; + accessibilityLabel?: string; + accessible?: boolean; } & TransformProps & ResponderProps & StrokeProps & @@ -68,6 +71,9 @@ export default function extractProps( markerStart = marker, markerMid = marker, markerEnd = marker, + testID, + accessibilityLabel, + accessible, } = props; const extracted: extractedProps = {}; @@ -111,6 +117,18 @@ export default function extractProps( extracted.name = String(id); } + if (testID) { + extracted.testID = String(testID); + } + + if (accessibilityLabel) { + extracted.accessibilityLabel = String(accessibilityLabel); + } + + if (accessible) { + extracted.accessible = Boolean(accessible); + } + if (clipRule) { extracted.clipRule = clipRules[clipRule] === 0 ? 0 : 1; } diff --git a/src/lib/extract/types.ts b/src/lib/extract/types.ts index 56551e50..a86eb120 100644 --- a/src/lib/extract/types.ts +++ b/src/lib/extract/types.ts @@ -276,6 +276,9 @@ export type extractedProps = { clipPath?: string; clipRule?: number; display?: string; + testID?: string; + accessibilityLabel?: string; + accessible?: boolean; [touchableProperty: string]: unknown; };