auditmysite 1.7.3

Resource-efficient WCAG 2.2 AA Accessibility Checker in Rust
Documentation
use crate::audit::normalized::AuditContext;
use crate::dark_mode::dark_mode_issue_text;
use crate::i18n::I18n;
use crate::output::localized::is_english;
use crate::output::report_model::{DarkModePresentation, VisionDeficiencyModePresentation};

pub(super) fn build_dark_mode_details(
    normalized: &AuditContext<'_>,
    i18n: &I18n,
) -> Option<DarkModePresentation> {
    let en = is_english(i18n);
    normalized.raw_dark_mode.map(|dm| DarkModePresentation {
        supported: dm.supported,
        score: dm.score,
        detection_methods: dm.detection_methods.clone(),
        color_scheme_css: dm.color_scheme_css,
        meta_color_scheme: dm.meta_color_scheme.clone(),
        css_custom_properties: dm.css_custom_properties,
        dark_contrast_violations: dm.dark_contrast_violations,
        dark_only_violations: dm.dark_only_violations,
        light_only_violations: dm.light_only_violations,
        print_stylesheet_detected: dm.print.stylesheet_detected,
        print_interactive_chrome_hidden: dm.print.interactive_chrome_hidden,
        print_content_not_clipped: dm.print.content_not_clipped,
        print_clipped_elements: dm.print.clipped_elements,
        forced_colors_detected: dm.forced_colors.stylesheet_detected,
        forced_colors_active_matches: dm.forced_colors.active_matches,
        forced_color_adjust_count: dm.forced_colors.forced_color_adjust_count,
        forced_colors_focus_visible: dm.forced_colors.focus_indicators_visible,
        vision_deficiency_modes: dm
            .vision_deficiency
            .modes
            .iter()
            .map(|mode| VisionDeficiencyModePresentation {
                mode: mode.mode.clone(),
                contrast_violations: mode.contrast_violations,
                new_contrast_violations: mode.new_contrast_violations,
                use_of_color_violations: mode.use_of_color_violations,
            })
            .collect(),
        issues: dm
            .issues
            .iter()
            .map(|i| {
                (
                    i.severity.clone(),
                    dark_mode_issue_text(&i.kind, &i.selectors, en),
                )
            })
            .collect(),
    })
}