Learn R Programming

waetr: Web Accessibility Evaluation Tools in R

Overview

waetr is an R package that provides a comprehensive interface to the WAVE (Web Accessibility Evaluation) API. It enables automated accessibility testing of web pages with support for batch processing, detailed reporting, and data visualization.

Features

  • Direct interface with WAVE API
  • Support for batch URL processing
  • Multiple visualization types for accessibility metrics
  • Comprehensive HTML report generation
  • Data export in multiple formats
  • Customizable analysis parameters

Installation

# Install devtools if you haven't already
install.packages("devtools")

# Install waetr from GitHub
devtools::install_github("benjaminlistyg/waetr")

Prerequisites

  • A WAVE API key (obtain from WebAIM WAVE API)
  • R version 3.5.0 or higher
  • Required R packages (automatically installed):
    • ggplot2
    • dplyr
    • tidyr
    • purrr
    • httr
    • jsonlite
    • progress

Basic Usage

Single URL Analysis

library(waetr)

# Analyze a single URL
result <- wave(
  key = "your_api_key",
  url = "https://example.com"
)

# View summary statistics
print(result$statistics)

Batch Analysis

# Analyze multiple URLs
urls <- c(
  "https://example.com",
  "https://example.org",
  "https://example.net"
)

# Generate comprehensive report
report <- create_accessibility_report(
  input = urls,
  api_key = "your_api_key",
  output_dir = "accessibility_report"
)

Visualizations

# Compare accessibility categories
compare_accessibility(
  input = urls,
  api_key = "your_api_key",
  plot_type = "category_counts"
)

# View detailed issues
compare_accessibility(
  input = urls,
  api_key = "your_api_key",
  plot_type = "issues"
)

# Compare structural elements
compare_accessibility(
  input = urls,
  api_key = "your_api_key",
  plot_type = "structure"
)

Function Documentation

Main Functions

  • wave(): Core function for making WAVE API requests
  • compare_accessibility(): Generate accessibility comparisons across websites
  • create_accessibility_report(): Create comprehensive accessibility reports

Visualization Functions

  • Plot Types:
    • category_counts: Compare main accessibility categories
    • issues: Detailed breakdown of errors and alerts
    • structure: Compare structural elements

Report Generation

The create_accessibility_report() function generates:

  • HTML report with interactive visualizations
  • CSV summary data
  • PNG plot files
  • Detailed accessibility metrics

API Credits

The WAVE API uses a credit system:

  • Report Type 1: 1 credit per URL
  • Report Type 2: 2 credits per URL
  • Report Type 3/4: 3 credits per URL

Monitor your credit usage with:

check_wave_credits("your_api_key")

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Steps to contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Running Tests

# Run all tests
devtools::test()

# Run specific test file
devtools::test(filter = "wave")

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • WebAIM for providing the WAVE API
  • R community for package development tools and guidance
  • All contributors and users of the package

Contact

For questions and feedback:

Citation

If you use waetr in your research, please cite it as:

Ross, B.V., & Listyg, B. (2024). waetr: R Package for Web Accessibility Evaluation Testing. 
GitHub repository: https://github.com/benjaminlistyg/waetr

Copy Link

Version

Install

install.packages('waetr')

Monthly Downloads

116

Version

0.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Benjamin Listyg

Last Published

April 16th, 2025

Functions in waetr (0.1.0)

plot_structure_comparison

Plot Structural Element Comparison
wave

Access WebAIM WAVE Accessibility API
calculate_required_credits

Calculate Required API Credits
validate_wave_params

Validate WAVE Parameters
process_category_items

Process Category Items
fetch_wave_data

Fetch WAVE Analysis Data
check_wave_credits

Check WAVE API Credits
create_html_table

Create HTML Table
compare_accessibility

Compare Website Accessibility
create_accessibility_report

Create Comprehensive Accessibility Report
generate_report_filename

Generate WAVE Report Filename
compare_wave_results

Process and Visualize WAVE Results
create_summary_data

Create Summary Data from WAVE Results
create_html_report

Create HTML Report
plot_category_counts

Plot Category Counts Comparison
plot_issue_details

Plot Detailed Issue Comparison