@@ -544,10 +544,7 @@ export function processImageAccessibilityProps(props: Record<string, any>): Reco
544544 result . accessibilityLabelledBy = accessibilityLabelledBy ;
545545 }
546546
547- // The two wrappers resolve `accessible` with DIFFERENT nullish semantics: iOS computes
548- // `ariaHidden !== true && (alt !== undefined ? true : accessible)`, while Android (RN >= 0.85)
549- // skips a nullish `alt`/`accessible` entirely (`!= null`), so an `alt={null}` forces `accessible`
550- // on iOS only.
547+ // RN 0.85 changed Android from undefined checks to nullish checks.
551548 if ( Platform . OS === 'ios' ) {
552549 if ( ariaHidden === true ) {
553550 result . accessible = false ;
@@ -556,10 +553,14 @@ export function processImageAccessibilityProps(props: Record<string, any>): Reco
556553 } else if ( accessible !== undefined ) {
557554 result . accessible = accessible ;
558555 }
559- } else if ( alt != null ) {
560- result . accessible = true ;
561- } else if ( accessible != null ) {
562- result . accessible = accessible ;
556+ } else {
557+ const minor = getReactNativeMinor ( ) ;
558+ const usesUndefinedChecks = minor !== null && minor <= 84 ;
559+ if ( usesUndefinedChecks ? alt !== undefined : alt != null ) {
560+ result . accessible = true ;
561+ } else if ( usesUndefinedChecks ? accessible !== undefined : accessible != null ) {
562+ result . accessible = accessible ;
563+ }
563564 }
564565
565566 if ( ariaHidden === true && Platform . OS !== 'ios' ) {
0 commit comments