pub mod criteria;
pub mod dimensions;
pub mod issue_class;
pub mod rules;
pub mod score;
pub mod score_area;
pub mod severity;
pub use criteria::{criterion_for_rule, principle_for_criterion, WcagPrinciple};
pub use dimensions::{Dimension, Subcategory};
pub use issue_class::IssueClass;
pub use rules::{ReportVisibility, Rule, RuleLookup};
pub use score::{
module_derived_from, module_score_grade, module_weight, Scaling, ScoreImpact, MODULE_WEIGHTS,
};
pub use score_area::{score_area_for_rule, score_area_for_subcategory, ScoreArea};
pub use severity::{Severity, SeverityExt};
pub fn is_missing_name_or_role(rule_id: &str) -> bool {
rule_id == "a11y.name_role.missing"
|| (rule_id.starts_with("a11y.") && rule_id.ends_with("_name.missing"))
}
const BEST_PRACTICE_RULES: &[&str] = &[
"a11y.title_only_description.weak",
"a11y.description_duplicates_name.redundant",
];
pub fn is_convention_rule(rule_id: &str) -> bool {
rule_id.starts_with("a11y.display_") || BEST_PRACTICE_RULES.contains(&rule_id)
}