Improve client accessibility and bump Harbor versions
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 14s
Build and Deploy Gateway / deploy (push) Successful in 6s

This commit is contained in:
2026-07-12 13:24:05 +03:00
parent 5b3d288405
commit 24fda3e34e
7 changed files with 215 additions and 30 deletions

View File

@@ -46,3 +46,23 @@ test('critical confirmations share one accessible blocking popup', () => {
assert.match(popup, /element\.inert = true/);
assert.match(styles, /\.client-confirmation-popup\.is-open[\s\S]*backdrop-filter: blur\(18px\)/);
});
test('copy feedback, drawers and Gateway tabs expose complete keyboard semantics', () => {
assert.match(component, /className="client-live-region" role="status" aria-live="polite" aria-atomic="true"/);
assert.match(component, /Не удалось скопировать/);
assert.match(component, /Скопировано/);
assert.doesNotMatch(component, />Error<|>Copied</);
assert.match(component, /aria-label="Закрыть инструкции"/);
assert.match(component, /aria-label="Закрыть локальные правила"/);
assert.match(component, /instructionsCloseRef\.current\?\.focus\(\)/);
assert.match(component, /localRulesCloseRef\.current\?\.focus\(\)/);
assert.match(component, /client-access-tab-\$\{tab\}/);
assert.match(component, /aria-controls={`client-access-panel-\$\{tab\}`}/);
assert.match(component, /tabIndex={accessTab === tab \? 0 : -1}/);
assert.match(component, /onKeyDown={\(event\) => navigateAccessTabs\(event, tab\)}/);
assert.match(component, /aria-labelledby="client-access-tab-gateway"/);
assert.match(component, /aria-labelledby={isGateway \? 'client-access-tab-proxy' : undefined}/);
assert.match(styles, /\.client-drawer-close \{[\s\S]*width: 44px;[\s\S]*height: 44px/);
assert.match(styles, /@media \(max-width: 560px\)[\s\S]*\.client-copy-button \{[\s\S]*min-height: 44px/);
assert.match(styles, /@media \(max-width: 560px\)[\s\S]*\.client-local-rule-enabled,[\s\S]*\.client-local-rule-delete \{[\s\S]*width: 44px;[\s\S]*height: 44px/);
});