From 37c53973197bb19424fff11d3030cff667772558 Mon Sep 17 00:00:00 2001 From: HugoMurillo Date: Fri, 19 Sep 2025 18:28:11 -0600 Subject: [PATCH] fix(#7777): screen reader accessibility setting not working (#8730) --- packages/cli/src/config/config.test.ts | 54 ++++++++++++++++++++++++++ packages/cli/src/config/config.ts | 1 - 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 4ec05b6c7d..16b70ec9e2 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -1805,6 +1805,60 @@ describe('loadCliConfig useRipgrep', () => { }); }); +describe('screenReader configuration', () => { + const originalArgv = process.argv; + + beforeEach(() => { + vi.resetAllMocks(); + vi.mocked(os.homedir).mockReturnValue('/mock/home/user'); + vi.stubEnv('GEMINI_API_KEY', 'test-api-key'); + }); + + afterEach(() => { + process.argv = originalArgv; + vi.unstubAllEnvs(); + vi.restoreAllMocks(); + }); + + it('should use screenReader value from settings if CLI flag is not present (settings true)', async () => { + process.argv = ['node', 'script.js']; + const argv = await parseArguments({} as Settings); + const settings: Settings = { + ui: { accessibility: { screenReader: true } }, + }; + const config = await loadCliConfig(settings, [], 'test-session', argv); + expect(config.getScreenReader()).toBe(true); + }); + + it('should use screenReader value from settings if CLI flag is not present (settings false)', async () => { + process.argv = ['node', 'script.js']; + const argv = await parseArguments({} as Settings); + const settings: Settings = { + ui: { accessibility: { screenReader: false } }, + }; + const config = await loadCliConfig(settings, [], 'test-session', argv); + expect(config.getScreenReader()).toBe(false); + }); + + it('should prioritize --screen-reader CLI flag (true) over settings (false)', async () => { + process.argv = ['node', 'script.js', '--screen-reader']; + const argv = await parseArguments({} as Settings); + const settings: Settings = { + ui: { accessibility: { screenReader: false } }, + }; + const config = await loadCliConfig(settings, [], 'test-session', argv); + expect(config.getScreenReader()).toBe(true); + }); + + it('should be false by default when no flag or setting is present', async () => { + process.argv = ['node', 'script.js']; + const argv = await parseArguments({} as Settings); + const settings: Settings = {}; + const config = await loadCliConfig(settings, [], 'test-session', argv); + expect(config.getScreenReader()).toBe(false); + }); +}); + describe('loadCliConfig tool exclusions', () => { const originalArgv = process.argv; const originalIsTTY = process.stdin.isTTY; diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index a801510af6..0b3e651056 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -261,7 +261,6 @@ export async function parseArguments(settings: Settings): Promise { .option('screen-reader', { type: 'boolean', description: 'Enable screen reader mode for accessibility.', - default: false, }) .option('output-format', { alias: 'o',