@@ -70,19 +70,29 @@ exports.isAccessibilityEnabled = (user_config = null) => {
7070 if ( user_config && user_config . run_settings ) {
7171 // Check run_settings.accessibility first (explicit user setting)
7272 if ( user_config . run_settings . accessibility !== undefined && user_config . run_settings . accessibility !== null ) {
73- logToServer ( `[TestHub] isAccessibilityEnabled from config: ${ user_config . run_settings . accessibility } ` ) ;
7473 return user_config . run_settings . accessibility === true ;
7574 }
7675 }
7776
7877 // Fallback to environment variable check
7978 if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY !== undefined ) {
80- const isEnabled = process . env . BROWSERSTACK_TEST_ACCESSIBILITY === "true" ;
81- logToServer ( `[TestHub] isAccessibilityEnabled from env: ${ isEnabled } ` ) ;
82- return isEnabled ;
79+ return process . env . BROWSERSTACK_TEST_ACCESSIBILITY === "true" ;
8380 }
8481
85- logToServer ( '[TestHub] Accessibility is disabled - no explicit setting found' ) ;
82+ return false ;
83+ } ;
84+
85+ // Equivalent to C# SDK IsAccessibilityInResponse function
86+ // Checks if server auto-enabled accessibility in the response
87+ exports . isAccessibilityInResponse = ( responseData ) => {
88+ if ( responseData && responseData . accessibility ) {
89+ if ( responseData . accessibility && typeof responseData . accessibility === 'object' ) {
90+ const successValue = responseData . accessibility . success ;
91+ return successValue === true ;
92+ }
93+ // If accessibility is null or not an object, treat as false
94+ return false ;
95+ }
8696 return false ;
8797} ;
8898
@@ -150,27 +160,28 @@ exports.handleErrorForObservability = (error = null) => {
150160} ;
151161
152162exports . setAccessibilityVariables = ( user_config , responseData ) => {
163+ // Match C# SDK ProcessAccessibilityResponse logic
153164 if ( ! responseData . accessibility ) {
154165 exports . handleErrorForAccessibility ( user_config ) ;
155-
156166 return [ null , null ] ;
157167 }
158168
159169 if ( ! responseData . accessibility . success ) {
160- exports . handleErrorForAccessibility (
161- user_config ,
162- responseData . accessibility
163- ) ;
164-
170+ exports . handleErrorForAccessibility ( user_config , responseData . accessibility ) ;
165171 return [ null , null ] ;
166172 }
167173
168- if ( responseData . accessibility . options ) {
169- logger . debug (
170- `BrowserStack Accessibility Automation Build Hashed ID: ${ responseData . build_hashed_id } `
171- ) ;
172- setAccessibilityCypressCapabilities ( user_config , responseData ) ;
173- helper . setBrowserstackCypressCliDependency ( user_config ) ;
174+ // Match C# SDK: if (accessibilityResponse["success"].ToString() == "True")
175+ if ( responseData . accessibility . success === true ) {
176+ // Set configuration like C# SDK: isAccessibility = true;
177+ user_config . run_settings . accessibility = true ;
178+ process . env . BROWSERSTACK_TEST_ACCESSIBILITY = 'true' ;
179+
180+ if ( responseData . accessibility . options ) {
181+ logger . debug ( `BrowserStack Accessibility Automation Build Hashed ID: ${ responseData . build_hashed_id } ` ) ;
182+ setAccessibilityCypressCapabilities ( user_config , responseData ) ;
183+ helper . setBrowserstackCypressCliDependency ( user_config ) ;
184+ }
174185 }
175186} ;
176187
@@ -341,37 +352,26 @@ exports.getAccessibilityOptions = (user_config) => {
341352 : user_config . run_settings . accessibilityOptions ;
342353
343354 // Get user's explicit accessibility preference (true/false/null) - matches C# SDK pattern
344- let accessibility = null ;
345-
346- logToServer ( `[TestHub] Getting accessibility options: run_settings.accessibility=${ user_config . run_settings . accessibility } , env=${ process . env . BROWSERSTACK_TEST_ACCESSIBILITY } ` ) ;
355+ let enabled = null ;
347356
348357 // Check run_settings.accessibility first (highest priority)
349- if ( user_config . run_settings . accessibility !== undefined && user_config . run_settings . accessibility !== null ) {
350- accessibility = user_config . run_settings . accessibility ;
351- logToServer ( `[TestHub] Using run_settings accessibility: ${ accessibility } ` ) ;
358+ if ( user_config . run_settings . accessibility === true ) {
359+ enabled = true ;
360+ } else if ( user_config . run_settings . accessibility === false ) {
361+ enabled = false ;
352362 }
353363 // Check environment variable (fallback)
354364 else if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY === 'true' ) {
355- accessibility = true ;
356- logToServer ( `[TestHub] Using environment variable accessibility: true` ) ;
357- }
358- else if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY === 'false' ) {
359- accessibility = false ;
360- logToServer ( `[TestHub] Using environment variable accessibility: false` ) ;
365+ enabled = true ;
366+ } else if ( process . env . BROWSERSTACK_TEST_ACCESSIBILITY === 'false' ) {
367+ enabled = false ;
361368 }
362369 // Otherwise keep as null for server auto-enable decision
363- else {
364- logToServer ( `[TestHub] No explicit accessibility setting found, sending null for server auto-enable decision` ) ;
365- }
366370
367- const result = {
371+ return {
368372 settings : settings ,
369- enabled : accessibility // Send user preference to server (null = let server decide)
373+ enabled : enabled // Send user preference to server (null = let server decide)
370374 } ;
371-
372- logToServer ( `[TestHub] Final accessibility options being sent to server:` , result ) ;
373-
374- return result ;
375375} ;
376376
377377exports . appendTestHubParams = ( testData , eventType , accessibilityScanInfo ) => {
0 commit comments