#![allow(missing_docs)]
use html_generator::accessibility::validate_wcag;
use html_generator::{
accessibility::Error,
accessibility::{add_aria_attributes, AccessibilityConfig},
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("\n๐งช html-generator Accessibility Examples\n");
aria_attribute_error_example()?;
wcag_validation_error_example()?;
html_processing_error_example()?;
html_too_large_error_example()?;
malformed_html_error_example()?;
println!("\n๐ All accessibility examples completed successfully!");
Ok(())
}
fn aria_attribute_error_example() -> Result<(), Error> {
println!("๐ฆ Invalid ARIA Attribute Example");
println!("---------------------------------------------");
let invalid_html =
r#"<div aria-invalid="unsupported_value">Content</div>"#;
let result = add_aria_attributes(invalid_html, None);
match result {
Ok(_) => println!(" โ Unexpected success in adding ARIA attributes"),
Err(e) => println!(" โ
Successfully caught Invalid ARIA Attribute Error: {}", e),
}
Ok(())
}
fn wcag_validation_error_example() -> Result<(), Error> {
println!("\n๐ฆ WCAG Validation Error Example");
println!("---------------------------------------------");
let invalid_html = r#"<img src="image.jpg">"#; let config = AccessibilityConfig::default();
match validate_wcag(invalid_html, &config, None) {
Ok(report) => {
println!(
" โ Unexpected success in passing WCAG validation"
);
println!(" Found {} issues", report.issue_count);
}
Err(e) => {
println!(
" โ
Successfully caught WCAG Validation Error: {}",
e
);
}
}
Ok(())
}
fn html_processing_error_example() -> Result<(), Error> {
println!("\n๐ฆ HTML Processing Error Example");
println!("---------------------------------------------");
let malformed_html = "<div><button>Unclosed button";
match add_aria_attributes(malformed_html, None) {
Ok(_) => println!(
" โ Unexpected success in processing malformed HTML"
),
Err(e) => println!(
" โ
Successfully caught HTML Processing Error: {}",
e
),
}
Ok(())
}
fn html_too_large_error_example() -> Result<(), Error> {
println!("\n๐ฆ HTML Too Large Error Example");
println!("---------------------------------------------");
let large_html = "a".repeat(1_000_001); match add_aria_attributes(&large_html, None) {
Ok(_) => println!(
" โ Unexpected success in processing large HTML"
),
Err(e) => println!(
" โ
Successfully caught HTML Too Large Error: {}",
e
),
}
Ok(())
}
fn malformed_html_error_example() -> Result<(), Error> {
println!("\n๐ฆ Malformed HTML Error Example");
println!("---------------------------------------------");
let malformed_html = "<div><span>Unclosed span";
match add_aria_attributes(malformed_html, None) {
Ok(_) => println!(
" โ Unexpected success in processing malformed HTML"
),
Err(e) => println!(
" โ
Successfully caught Malformed HTML Error: {}",
e
),
}
Ok(())
}