npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gbu-accessibility-package

v3.12.0

Published

Comprehensive accessibility fixes and project optimization for HTML files. Smart context-aware alt text generation, form labels, button names, link names, landmarks, heading analysis, WCAG-compliant role attributes, unused files detection, dead code analy

Readme

GBU Accessibility Package

🚀 Automated accessibility fixes for HTML files - Smart, context-aware accessibility improvements with zero configuration.

npm version License: MIT Node.js Version

✨ Features

🎯 Core Accessibility Fixes

  • 🖼️ Smart Alt Text Generation - Context-aware alt attributes for images
  • 🏷️ Aria Label Support - Automatic aria-label matching alt text
  • 🌐 HTML Lang Attributes - Automatic language attribute fixes
  • 🎭 Role Attributes - WCAG-compliant role attribute management
  • 🏷️ Aria Labels - Automatic aria-label generation from alt text and content
  • 📋 Form Labels - Fix missing labels with intelligent aria-label generation
  • 🔘 Button Names - Fix empty buttons and input buttons without names
  • 🔗 Link Names - Fix empty links and detect generic link text
  • 🏛️ Landmarks - Add missing main and navigation landmarks
  • 📑 Heading Analysis & Auto-Fix - Analyze heading structure with optional auto-fix using --auto-fix-headings
  • 🎯 Nested Controls Detection - Detect and fix nested interactive controls
  • 🔍 Broken Links Detection - Detect broken external links
  • 📁 404 Resources Detection - Detect missing local resources (images, CSS, JS, etc.)
  • 🏷️ Google Tag Manager Check - Validate GTM installation (script + noscript)
  • 🏷️ Meta Tags Validation - Check for typos and syntax errors in meta tags and Open Graph Protocol
  • ✏️ Meta Tags Auto-Fix - Automatically fix typos in meta property names and content values
  • 🗂️ Unused Files Detection - Find files not referenced anywhere in the project
  • ☠️ Dead Code Analysis - Detect unused CSS rules and JavaScript functions
  • 📏 File Size Analysis - Check file sizes and suggest optimizations
  • 🧹 Duplicate Cleanup - Remove duplicate role attributes

🚀 Enhanced Alt Attribute Features (Integrated!)

  • 🔍 Comprehensive Analysis - Image type classification and quality checking built-in
  • 🎨 Diverse Alt Generation - Multiple strategies for creative alt text integrated in core
  • 🌐 Multi-language Support - Japanese, English, Vietnamese vocabulary built-in
  • 🎭 Creativity Levels - Conservative, Balanced, Creative modes
  • 🧠 Context Awareness - Brand, emotional, and technical context integration
  • 📊 Data Visualization - Specialized descriptions for charts and graphs
  • 🧹 Clean Architecture - All enhanced features integrated in a single file

🛠️ Utility Features

  • 📁 Batch Processing - Process entire directories recursively
  • 💾 Optional Backups - Create backup files when needed with --backup flag
  • 🔍 Dry Run Mode - Preview changes before applying
  • 📊 Detailed Reports - Comprehensive fix summaries
  • Individual Fix Modes - Target specific accessibility issues

🚀 Quick Start

Installation

# Global installation (recommended)
npm install -g gbu-accessibility-package

# Local installation
npm install gbu-accessibility-package

Uninstall and Reinstall

# Uninstall global package
npm uninstall -g gbu-accessibility-package

# Uninstall local package
npm uninstall gbu-accessibility-package

# Clear npm cache (recommended when having issues)
npm cache clean --force

# Reinstall latest version
npm install -g gbu-accessibility-package@latest

# Check installed version
npm list -g gbu-accessibility-package
gbu-a11y --version

# Install specific version
npm install -g [email protected]

Installation Troubleshooting

# If permission errors (macOS/Linux)
sudo npm install -g gbu-accessibility-package

# If cache issues
npm cache clean --force
npm install -g gbu-accessibility-package --force

# Verify installation
which gbu-a11y
gbu-a11y --help

# Update to latest version
npm update -g gbu-accessibility-package

Basic Usage

# Comprehensive fixes (default mode)
gbu-a11y

# Preview changes (dry run)
gbu-a11y --dry-run

# Fix specific directory
gbu-a11y ./src

# Fix specific file
gbu-a11y index.html

Enhanced Alt Attribute Mode

# Enable enhanced alt attribute analysis
gbu-a11y --enhanced-alt

# Creative alt text generation with emotions
gbu-a11y --enhanced-alt --alt-creativity creative --include-emotions

# Strict quality checking
gbu-a11y --enhanced-alt --strict-alt

# English with creative mode
gbu-a11y -l en --enhanced-alt --alt-creativity creative

📖 Detailed Usage

Command Line Options

gbu-a11y [options] [directory/file]

Basic Options:
  -d, --directory <path>    Target directory (default: current directory)
  -l, --language <lang>     Language for lang attribute (default: ja)
  --backup                 Create backup files
  --no-backup              Don't create backup files (default)
  --dry-run                Preview changes without applying

Fix Modes:
  --comprehensive, --all   Run comprehensive fixes (default)
  --alt-only               Fix alt attributes + cleanup
  --lang-only              Fix HTML lang attributes + cleanup
  --role-only              Fix role attributes + cleanup
  --aria-label-only        Fix aria-label attributes + cleanup
  --forms-only             Fix form labels + cleanup
  --buttons-only           Fix button names + cleanup
  --links-only             Fix link names + cleanup
  --landmarks-only         Fix landmarks + cleanup
  --headings-only          Analyze heading structure with optional auto-fix
  --auto-fix-headings      Enable automatic heading structure fixes
  --links-check            Check for broken links and 404 resources (comprehensive, no auto-fix)
  --broken-links           Check for broken external links only (no auto-fix)
  --404-resources          Check for missing local resources only (no auto-fix)
  --gtm-check              Check Google Tag Manager installation (no auto-fix)
  --check-meta, --meta-check  Check meta tags for typos and syntax errors (no auto-fix)
  --fix-meta, --meta-fix   Auto-fix meta tag typos and syntax errors
  --full-report            Generate comprehensive Excel report (all checks)
  -o, --output <file>      Output path for Excel report (use with --full-report)
  --unused-files           Check for unused files in project
  --dead-code              Check for dead code in CSS and JavaScript
  --file-size, --size-check Check file sizes and suggest optimizations
  --cleanup-only           Only cleanup duplicate role attributes

Enhanced Alt Options:
  --enhanced-alt           Use enhanced alt attribute analysis and generation
  --alt-creativity <mode>  Alt text creativity: conservative, balanced, creative
  --include-emotions       Include emotional descriptors in alt text
  --strict-alt             Enable strict alt attribute quality checking

Help:
  -h, --help               Show help message
  -v, --version            Show version number

Examples

# Basic comprehensive fixes
gbu-a11y

# Preview all changes
gbu-a11y --dry-run

# Fix with English language
gbu-a11y -l en ./public

# Individual fix types
gbu-a11y --alt-only          # Fix alt attributes + cleanup
gbu-a11y --aria-label-only   # Fix aria-label attributes + cleanup
gbu-a11y --forms-only        # Fix form labels + cleanup
gbu-a11y --buttons-only      # Fix button names + cleanup
gbu-a11y --headings-only     # Analyze heading structure
gbu-a11y --headings-only --auto-fix-headings  # Auto-fix heading structure
gbu-a11y --links-check       # Check broken links and missing resources + cleanup
gbu-a11y --broken-links      # Check broken external links only + cleanup
gbu-a11y --404-resources     # Check missing local resources only + cleanup
gbu-a11y --gtm-check         # Check Google Tag Manager installation
gbu-a11y --check-meta        # Check meta tags for typos and syntax errors
gbu-a11y --fix-meta          # Auto-fix meta tag typos
gbu-a11y --fix-meta --dry-run  # Preview meta tag fixes
gbu-a11y --full-report       # Generate comprehensive Excel report
gbu-a11y --full-report -o report.xlsx  # Custom output path
gbu-a11y --unused-files      # Check for unused files in project
gbu-a11y --dead-code         # Check for dead CSS and JavaScript code
gbu-a11y --file-size         # Check file sizes and suggest optimizations

# Enhanced alt attribute features
gbu-a11y --enhanced-alt                                    # Basic enhanced mode
gbu-a11y --enhanced-alt --alt-creativity creative          # Creative descriptions
gbu-a11y --enhanced-alt --include-emotions                 # Include emotional context
gbu-a11y --enhanced-alt --strict-alt                       # Strict quality checking
gbu-a11y -l en --enhanced-alt --alt-creativity creative    # English creative mode

# Combine with other options
gbu-a11y --enhanced-alt --backup ./src                     # Enhanced mode with backups
gbu-a11y --enhanced-alt --dry-run                          # Preview enhanced fixes

🎨 Enhanced Alt Attribute Features

Creativity Levels

Conservative

  • Simple, factual descriptions
  • Focus on basic functionality
  • Minimal vocabulary variation

Example: alt="Chart", alt="Logo"

Balanced (Default)

  • Context-aware descriptions
  • Moderate creativity
  • Balance between simple and detailed

Example: alt="Sales performance chart", alt="Company logo"

Creative

  • Rich, detailed descriptions
  • Emotional context integration
  • High brand and context awareness

Example: alt="Dynamic sales performance chart showing impressive 25% quarterly growth", alt="Innovative technology company logo representing digital transformation"

Image Type Classification

  • Decorative Images: Automatically detected and marked with alt=""
  • Functional Icons: Described by their action (e.g., "Open chat", "Search")
  • Data Visualizations: Include chart type, trends, and key data points
  • Complex Images: Short alt + recommendation for detailed description
  • Logos: Include brand name and "logo" keyword
  • Content Images: Context-aware descriptions based on surrounding content

Quality Checks

  • Error Level: Missing alt, empty alt for content, generic text
  • ⚠️ Warning Level: Too long/short, redundant words, filename in alt
  • ℹ️ Info Level: Optimization suggestions, consistency checks

📋 Programmatic Usage

Basic Usage

const { AccessibilityFixer } = require('gbu-accessibility-package');

const fixer = new AccessibilityFixer({
  language: 'ja',
  backupFiles: true,
  dryRun: false
});

// Fix all accessibility issues
fixer.fixAllAccessibilityIssues('./src').then(results => {
  console.log('Accessibility fixes completed:', results);
});

// Fix specific issues
await fixer.fixEmptyAltAttributes('./src');
await fixer.fixFormLabels('./src');
await fixer.fixButtonNames('./src');

Enhanced Alt Attribute Mode (Integrated)

const { AccessibilityFixer } = require('gbu-accessibility-package');

// Use AccessibilityFixer with enhanced mode (integrated)
const fixer = new AccessibilityFixer({
  language: 'en',
  enhancedAltMode: true,
  altCreativity: 'creative',
  includeEmotions: true,
  strictAltChecking: true
});

await fixer.fixEmptyAltAttributes('./src');

// All enhanced features are now integrated in AccessibilityFixer
// No need to import separate classes
const results = await fixer.fixAllAccessibilityIssues('./src');
console.log('Accessibility fixes completed with enhanced features:', results);

// New: Check for unused files
await fixer.checkUnusedFiles('./src');

// New: Check for dead code
await fixer.checkDeadCode('./src');

// New: Check file sizes
await fixer.checkFileSizes('./src');

🎯 What Gets Fixed

Alt Attributes (Enhanced Mode)

  • Missing alt attributes → Context-aware alt text generation
  • Empty alt attributes → Smart content-based descriptions
  • Generic alt text → Specific, meaningful descriptions
  • Too long alt text → Optimized length with key information
  • Redundant words → Clean, concise descriptions
  • Data visualizations → Chart type + trends + key data

Form Accessibility

  • Missing form labels → Intelligent aria-label generation
  • Unlabeled inputs → Context-based label suggestions
  • Form structure → Proper label associations

Interactive Elements

  • Empty buttons → Action-based button names
  • Generic link text → Descriptive link purposes
  • Missing button names → Function-based descriptions

Document Structure

  • Missing lang attributes → Automatic language detection
  • Missing landmarks → Main and navigation landmarks
  • Heading structure → Analysis and auto-fix with --auto-fix-headings
    • Fix multiple h1 elements
    • Fix heading level skipping (h2 → h4)
    • Add text to empty headings
    • Fix duplicate headings
  • Nested interactive controls → Detect and fix nested controls
  • Role attributes → WCAG-compliant role assignments

Link Validation

  • Broken External Links → Detect HTTP 404, 500, timeout errors on external URLs
    • Invalid URLs → Detect malformed URL formats
    • Slow links → Warn about timeouts and slow responses
    • Network errors → Connection failures and unreachable hosts
  • 404 Missing Resources → Check for missing local files
    • Images (img src), CSS files (link href), JavaScript files (script src)
    • Video/audio sources, other local assets
    • Relative and absolute path checking

Project Optimization

  • Unused Files → Detect files not referenced anywhere in the project
    • Images, CSS, SCSS/Sass, JavaScript, JSX, TypeScript, Vue, PHP, JSON, Markdown, XML, PDF, Video, Audio files
    • Local file references analysis
    • Heuristic detection with manual review recommendations
  • Dead Code Analysis → Find unused CSS rules and JavaScript functions
    • CSS selectors not used in HTML
    • JavaScript functions never called
    • Variables declared but never used
    • Smart skipping of dynamic patterns
  • Google Tag Manager Check → Validate GTM installation
    • Detect GTM script in <head> section
    • Verify noscript fallback in <body> section
    • Check container ID consistency
    • Validate proper positioning of both snippets
    • Reports: complete installation, missing components, position issues
  • Meta Tags Validation → Check typos and syntax errors in meta tags
    • Detect property name typos (og:titel → og:title, discription → description)
    • Detect content value typos (websit → website, ja_jp → ja_JP)
    • Check syntax errors (missing content, empty values)
    • Support Open Graph Protocol and Twitter Card
    • 40+ common typo patterns in dictionary
  • Meta Tags Auto-Fix → Automatically fix meta tag errors
    • Fix property name typos in one click
    • Fix content value typos
    • Handle multiple errors on same tag
    • Dry-run mode for preview
    • Backup support for safety
  • File Size Analysis → Check file sizes and suggest optimizations
    • Detect large files exceeding recommended thresholds
    • Type-specific optimization suggestions (images, CSS, JS, etc.)
    • File size breakdown by type
    • Top 10 largest files reporting

🏷️ Google Tag Manager Validation

The --gtm-check feature validates proper Google Tag Manager installation across your project.

What It Checks

  1. Script in <head>: Verifies GTM script is present before </head> closing tag
  2. Noscript in <body>: Confirms noscript fallback is immediately after <body> opening tag
  3. Container ID: Ensures both snippets use the same GTM container ID (format: GTM-XXXXXX)
  4. Position Validation: Checks optimal placement of both code snippets

Usage

# Check GTM installation in entire project
gbu-a11y --gtm-check

# Check specific directory
gbu-a11y --gtm-check ./public

# Alternative commands
gbu-a11y --check-gtm
gbu-a11y --google-tag-manager

Example Output

🏷️ Đang kiểm tra cài đặt Google Tag Manager (GTM)...

📁 public/index.html:
  ✅ GTM Container ID: GTM-ABC1234
  ✅ Script trong head: Đã đặt đúng vị trí trước </head>
  ✅ Noscript trong body: Đã đặt đúng vị trí sau <body>

📁 public/about.html:
  ✅ GTM Container ID: GTM-ABC1234
  ✅ Script trong head: Đã đặt đúng vị trí trước </head>
  ❌ Noscript trong body: Thiếu sau thẻ <body>
  ❌ Thiếu GTM Noscript: Tìm thấy GTM script nhưng thiếu noscript dự phòng trong <body>
    💡 Thêm đoạn mã GTM noscript ngay sau thẻ mở <body>

📊 Tóm tắt: Đã phân tích 2 file
  ✅ File có GTM: 2
  ⚠️ File có vấn đề về GTM: 1
💡 GTM cần có cả <script> trong <head> và <noscript> sau <body>

GTM Installation Requirements

For proper GTM installation, each page should have:

  1. Script snippet in <head>:
<head>
  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
  <!-- End Google Tag Manager -->
</head>
  1. Noscript snippet immediately after <body>:
<body>
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->
  
  <!-- Your page content -->
</body>

🏷️ Meta Tags Validation & Auto-Fix

The --check-meta and --fix-meta features help you maintain correct meta tags and Open Graph Protocol implementation.

What It Checks

  1. Property Name Typos: Detects common misspellings in meta tag properties

    • og:titelog:title
    • og:descripionog:description
    • og:sitenameog:site_name
    • discriptiondescription
    • And 40+ more common typos
  2. Content Value Typos: Fixes incorrect values

    • websitwebsite (og:type)
    • ja_jpja_JP (og:locale)
    • summary_larg_imagesummary_large_image (twitter:card)
  3. Syntax Errors: Identifies structural issues

    • Missing content attributes
    • Empty content values
    • Mixed quote styles

Usage

# Check for meta tag errors
gbu-a11y --check-meta

# Check specific directory
gbu-a11y --check-meta ./public

# Auto-fix errors
gbu-a11y --fix-meta

# Preview fixes without applying
gbu-a11y --fix-meta --dry-run

# Fix with backup
gbu-a11y --fix-meta --backup

# Alternative commands
gbu-a11y --meta-check
gbu-a11y --meta-fix

Example Output

Check Mode (--check-meta):

🔍 Checking meta tags for typos and syntax errors...

❌ public/index.html
   1. Lỗi chính tả property: "og:titel" → "og:title"
   2. Lỗi chính tả property: "og:descripion" → "og:description"
   3. Lỗi giá trị og:type: "websit" → "website"
   4. Lỗi chính tả property: "twitter:car" → "twitter:card"

✅ public/about.html - No errors

📊 Summary:
   Total files checked: 2
   Files with errors: 1
   Total errors found: 4
   Files OK: 1

💡 Sử dụng --meta-fix để tự động sửa các lỗi này

Fix Mode (--fix-meta):

🔧 Fixing meta tag typos and syntax errors...

🔧 Fixing: public/index.html
   ✓ Fixed property: og:titel → og:title
   ✓ Fixed property: og:descripion → og:description
   ✓ Fixed og:type value: websit → website
   ✓ Fixed property: twitter:car → twitter:card
   💾 Saved 4 fix(es) to public/index.html

✅ public/about.html - No errors to fix

📊 Summary:
   Total files checked: 2
   Files fixed: 1
   Total fixes applied: 4

Supported Typo Patterns

Open Graph Properties:

  • og:titel, og:tittle, og:tilteog:title
  • og:descripion, og:discription, og:desciptionog:description
  • og:imge, og:iamgeog:image
  • og:typ, og:tipeog:type
  • og:sitename, og:sit_nameog:site_name
  • og:localog:locale

Twitter Card Properties:

  • twitter:cartwitter:card
  • twitter:titel, twitter:tittletwitter:title
  • twitter:descripion, twitter:discriptiontwitter:description
  • twitter:imgetwitter:image
  • twitter:creatertwitter:creator

Meta Tag Properties:

  • discription, descripion, desciptiondescription
  • viewpor, veiwportviewport
  • keywordkeywords
  • auther, autorauthor

Content Values:

  • websit, web-site, artical, aticle (og:type)

  • ja_jpja_JP, en_usen_US, vi_vnvi_VN (og:locale)

  • summary_larg_image, summay (twitter:card)

Common Issues Detected

  • Missing Script: GTM script not found in <head>
  • Missing Noscript: Noscript fallback not found after <body>
  • ⚠️ Wrong Position: Script or noscript not in optimal position
  • ID Mismatch: Different container IDs between script and noscript
  • ⚠️ Incomplete Installation: Only one of the two required snippets present

🔧 Package Management

Check package information

# Check current version
gbu-a11y --version
npm list -g gbu-accessibility-package

# View package info
npm info gbu-accessibility-package

# Verify installation
which gbu-a11y
npm list -g | grep gbu-accessibility-package

Update package

# Check for new versions
npm outdated -g gbu-accessibility-package

# Update to latest version
npm update -g gbu-accessibility-package

# Or reinstall latest version
npm uninstall -g gbu-accessibility-package
npm install -g gbu-accessibility-package@latest

Cache management

# Verify cache
npm cache verify

# Clean cache (when having issues)
npm cache clean --force

# View cache location
npm config get cache

🧪 Testing and Demo

# Test the package
npm test

# Demo basic features
npm run demo

# Demo enhanced alt features
npm run demo-enhanced

# Demo creative alt generation
npm run demo-creative

# Test enhanced alt features
npm run test-enhanced-alt

📊 Performance

  • Basic Mode: Fast processing, suitable for large projects
  • Enhanced Mode: ~20-30% slower but 85-90% improvement in alt text quality
  • Memory Usage: +15-20% for enhanced vocabulary and analysis
  • Accuracy: 95%+ detection of accessibility issues

🌐 Language Support

  • Japanese (ja): Default language with rich vocabulary
  • English (en): Comprehensive English support
  • Vietnamese (vi): Vietnamese language support

Enhanced alt features include language-specific vocabulary and grammar rules for natural, contextually appropriate descriptions.

📚 Documentation

🤝 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.

Development Setup

git clone https://github.com/example/gbu-accessibility-tool.git
cd gbu-accessibility-tool/accessibility-package
npm install
npm test

📄 License

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

🙏 Acknowledgments

  • Built with accessibility best practices in mind
  • Follows WCAG guidelines
  • Inspired by the need for automated accessibility improvements
  • Community feedback and contributions

Made with ❤️ by the GBU Team

For more information, visit our GitHub repository.