/** * Agentic QE v3 - Accessibility Testing Service * Implements WCAG 2.2 compliance auditing */ import { Result } from '../../../shared/types/index.js'; import { MemoryBackend } from '../../../kernel/interfaces.js'; import { IAccessibilityAuditingService, AccessibilityReport, WCAGValidationResult, ContrastAnalysis, KeyboardNavigationReport, AuditOptions } from '../interfaces.js'; /** * Configuration for the accessibility tester */ export interface AccessibilityTesterConfig { defaultWCAGLevel: 'A' | 'AA' | 'AAA'; includeWarnings: boolean; auditTimeout: number; enableColorContrastCheck: boolean; enableKeyboardCheck: boolean; /** * Enable simulation mode for testing purposes only. * When true, returns deterministic stub data. * When false (default), delegates to real axe-core or returns empty results. */ simulationMode: boolean; } /** * Accessibility Auditing Service Implementation * Provides WCAG 2.2 compliance checking */ export declare class AccessibilityTesterService implements IAccessibilityAuditingService { private readonly memory; private readonly config; private readonly rules; constructor(memory: MemoryBackend, config?: Partial); /** * Run full accessibility audit */ audit(url: string, options?: AuditOptions): Promise>; /** * Audit specific element */ auditElement(url: string, _selector: string): Promise>; /** * Check color contrast * Analyzes common page elements for WCAG 2.2 contrast compliance */ checkContrast(url: string): Promise>; /** * Validate against specific WCAG level * Evaluates page compliance with WCAG 2.2 success criteria */ validateWCAGLevel(url: string, level: 'A' | 'AA' | 'AAA'): Promise>; /** * Validate a specific WCAG criterion */ private validateCriterion; /** * Check keyboard navigation * Analyzes focusable elements, tab order, and potential focus traps */ checkKeyboardNavigation(url: string): Promise>; private initializeRules; private filterRulesByLevel; private runRule; /** * Heuristic-based WCAG rule checking for production mode. * Analyzes URL patterns and common accessibility issues without browser automation. * This provides baseline checks; full auditing requires browser-based tools like axe-core. */ private checkRuleWithHeuristics; private isLikelyImageHeavyPage; private isLikelyInteractivePage; private isLikelyMissingLang; private hasNavigationPatterns; private isLikelySPA; private hasSkipLinkPattern; private isFormPage; private hasModalPatterns; private hasComplexLayoutPatterns; private generateImageAltWarnings; private generateButtonNameWarnings; private generateContrastWarnings; private generateLinkNameWarnings; private generateFocusVisibleWarnings; private generateFormLabelWarnings; private generateKeyboardTrapWarnings; private generateFocusOrderWarnings; /** * Deterministic rule check for simulation mode only. * Uses URL hash to produce consistent results without Math.random(). */ private checkRuleDeterministic; /** * Generate a deterministic selector based on rule ID and index */ private generateDeterministicSelector; /** * Estimate the number of elements checked based on rule category */ private estimateCheckedNodes; /** * Analyze contrast for common UI elements */ private analyzeContrastForElements; /** * Generate tab order based on URL structure */ private generateTabOrder; private detectKeyboardIssues; /** * Detect focus traps based on URL patterns */ private detectFocusTraps; private storeReport; private hashUrl; } //# sourceMappingURL=accessibility-tester.d.ts.map