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.
- 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
# Install devtools if you haven't already
install.packages("devtools")
# Install waetr from GitHub
devtools::install_github("benjaminlistyg/waetr")
- 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
library(waetr)
# Analyze a single URL
result <- wave(
key = "your_api_key",
url = "https://example.com"
)
# View summary statistics
print(result$statistics)
# 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"
)
# 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"
)
wave()
: Core function for making WAVE API requestscompare_accessibility()
: Generate accessibility comparisons across websitescreate_accessibility_report()
: Create comprehensive accessibility reports
- Plot Types:
category_counts
: Compare main accessibility categoriesissues
: Detailed breakdown of errors and alertsstructure
: Compare structural elements
The create_accessibility_report()
function generates:
- HTML report with interactive visualizations
- CSV summary data
- PNG plot files
- Detailed accessibility metrics
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")
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:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
# Run all tests
devtools::test()
# Run specific test file
devtools::test(filter = "wave")
This project is licensed under the MIT License - see the LICENSE file for details.
- WebAIM for providing the WAVE API
- R community for package development tools and guidance
- All contributors and users of the package
For questions and feedback:
- Open an issue on GitHub: https://github.com/benjaminlistyg/waetr/issues
- Email: Submit an issue for contact information
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