datapilot-cli
Version:
Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform
168 lines • 6.01 kB
TypeScript
/**
* WCAG Accessibility Scoring Engine
* Comprehensive accessibility assessment for data visualizations
*
* Features:
* - WCAG 2.1 compliance scoring (A, AA, AAA levels)
* - Color accessibility analysis including contrast ratios
* - Keyboard navigation assessment
* - Screen reader compatibility scoring
* - Motor impairment considerations
* - Cognitive accessibility evaluation
*/
import { ChartType, AccessibilityLevel, ComplexityLevel } from '../types';
import type { AccessibilityGuidance, AccessibilityAssessment } from '../types';
export interface WCAGAssessmentInput {
chartType: ChartType;
colorScheme: {
colors: string[];
backgroundColor?: string;
type: 'categorical' | 'sequential' | 'diverging' | 'single';
};
interactivity: {
hasKeyboardSupport: boolean;
hasTooltips: boolean;
hasZoom: boolean;
hasFocus: boolean;
};
content: {
hasAlternativeText: boolean;
hasDataTable: boolean;
hasAriaLabels: boolean;
textSize: number;
contrast: 'auto' | 'manual';
};
complexity: ComplexityLevel;
dataSize: number;
}
export interface AccessibilityScore {
overallScore: number;
level: AccessibilityLevel;
wcagLevel: 'A' | 'AA' | 'AAA';
breakdown: {
perceivable: number;
operable: number;
understandable: number;
robust: number;
};
}
export declare class WCAGAccessibilityEngine {
private static readonly WCAG_CRITERIA;
/**
* Assess comprehensive accessibility for a visualization
*/
static assessAccessibility(input: WCAGAssessmentInput): AccessibilityAssessment;
/**
* Generate detailed accessibility guidance for a specific chart type
*/
static generateAccessibilityGuidance(chartType: ChartType, input?: Partial<WCAGAssessmentInput>): AccessibilityGuidance;
/**
* Evaluate WCAG compliance across all criteria
*/
private static evaluateWCAGCompliance;
/**
* Evaluate individual WCAG criterion
*/
private static evaluateCriterion;
/**
* Calculate comprehensive accessibility score
*/
private static calculateAccessibilityScore;
/**
* Calculate Perceivable principle score (40% of total)
*/
private static calculatePerceivableScore;
/**
* Calculate Operable principle score (30% of total)
*/
private static calculateOperableScore;
/**
* Calculate Understandable principle score (20% of total)
*/
private static calculateUnderstandableScore;
/**
* Calculate Robust principle score (10% of total)
*/
private static calculateRobustScore;
/**
* Assess color blindness support
*/
private static assessColorBlindnessSupport;
/**
* Assess motor impairment support
*/
private static assessMotorImpairmentSupport;
/**
* Assess cognitive accessibility support
*/
private static assessCognitiveAccessibility;
/**
* Generate accessibility recommendations
*/
private static generateRecommendations;
private static evaluateMinimumContrast;
private static evaluateEnhancedContrast;
private static evaluateNonTextContrast;
private static calculateContrastRatio;
private static getRelativeLuminance;
private static hexToRgb;
private static simulateColorBlindness;
private static areColorsDistinguishable;
private static areColorsDistinguishableInGrayscale;
private static getAlternativeEncodings;
private static calculateContrastScore;
private static calculateColorBlindScore;
private static reliesOnlyOnColor;
private static hasAlternativeEncoding;
private static hasBasicKeyboardSupport;
private static calculateTargetSizeScore;
private static hasTimingRequirements;
private static calculateContentClarityScore;
private static hasPredictableBehavior;
private static calculateErrorPreventionScore;
private static calculateATCompatibilityScore;
private static hasLargeClickTargets;
private static hasCustomControls;
private static supportsProgressiveDisclosure;
private static calculateCognitiveLoad;
private static getErrorPreventionStrategies;
private static getChartSpecificRecommendations;
private static scoreToAccessibilityLevel;
private static determineComplianceLevel;
private static identifyComplianceGaps;
private static describeIssue;
private static describeSolution;
private static determinePriority;
private static generateImprovements;
private static calculateTestCoverage;
private static generateManualTestChecklist;
private static generateUserTestScenarios;
assessWCAGCompliance(input: any): any;
validateTextAlternatives(input: any): any;
assessKeyboardAccessibility(input: any): any;
calculateContrastRatios(input: any): any;
assessColorVisionAccessibility(input: any): any;
private calculateOverallScore;
private getGuidelinePrinciple;
private generateViolations;
private generateAltTextSuggestions;
private assessDescriptionQuality;
generateColorBlindFriendlyPalette(input: any): any;
validateColorUsage(input: any): any;
generateDataTable(input: any): any;
generateSonification(input: any): any;
generateTactileRepresentation(input: any): any;
generateVerbalDescription(input: any): any;
performComprehensiveAudit(input: any): any;
runAutomatedTests(input: any): any;
generateTestingChecklist(input: any): any;
validateWithAssistiveTech(input: any): any;
generateAccessibilityReport(input: any): any;
optimizeAccessibilityPerformance(input: any): any;
generateDevelopmentIntegration(input: any): any;
generateARIAMarkup(input: any): any;
generateTableNavigation(input: any): any;
generateVoiceControl(input: any): any;
generateSwitchSupport(input: any): any;
}
//# sourceMappingURL=wcag-accessibility-engine.d.ts.map