'WebAIM' 'WAVE' Accessibility Evaluation Tool

An R interface to the 'WebAIM' 'WAVE' accessibility evaluation API < https://wave.webaim.org/api/>. This package provides tools for analyzing web pages for accessibility issues, generating reports, and comparing accessibility across multiple websites.


waetr hex logo

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

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("waetr")

0.1.0 by Benjamin Listyg, a year ago


https://github.com/benjaminlistyg/waetr


Report a bug at https://github.com/benjaminlistyg/waetr/issues


Browse source code at https://github.com/cran/waetr


Authors: Benjamin Listyg [aut, cre] , Brennah V. Ross [aut]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports dplyr, ggplot2, httr, jsonlite, purrr, tibble, tools

Suggests mockery, testthat


See at CRAN