yaknet / accessibility-console
A professional AI-powered WCAG 2.1 accessibility scanner with self-healing capabilities.
Requires
- php: ^8.2
- ext-dom: *
- ext-libxml: *
- ext-mbstring: *
- chrome-php/chrome: ^1.15
- google-gemini-php/client: ^1.0
- guzzlehttp/guzzle: ^7.8
- masterminds/html5: ^2.8
- monolog/monolog: ^3.0
- sabberworm/php-css-parser: ^9.4
- symfony/console: ^6.4|^7.0
- symfony/yaml: ^6.4|^7.0
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
README
YakNet Accessibility Console, web projelerinizdeki erişilebilirlik (WCAG 2.1) hatalarını sadece tespit etmekle kalmayan, aynı zamanda Yapay Zeka (AI) desteğiyle bu hataları otomatik olarak düzeltebilen (Self-Healing) profesyonel bir PHP static analysis kütüphanesidir.
PHPStan ve PHP-CS-Fixer esintili yapısıyla, yerel görünüm şablonlarınızı (.blade.php, .twig, .html, .php) doğrudan tarayabilir, baseline desteğiyle mevcut hataları yok sayabilir ve CI/CD süreçlerinize tam entegre çalışabilir.
🌟 Öne Çıkan Özellikler
- 🤖 AI Self-Healing: Tespit edilen WCAG hataları için Google Gemini AI üzerinden akıllı çözüm önerileri alır ve kaynak kodunuzu (Blade, Twig, PHP, HTML) otomatik olarak tamir eder.
- ⚡ PHPStan Tarzı Analiz: Tüm projeyi veya belirli dizinleri komut satırından tarayarak hataları tam dosya yolu ve satır numarası ile listeler.
- 🛡️ Baseline Desteği:
a11y-baseline.jsonoluşturarak mevcut erişilebilirlik hatalarını yok sayabilir, CI/CD pipeline'ınızın sadece yeni hatalarda kırılmasını sağlayabilirsiniz. - ⚙️ YAML Konfigürasyonu:
a11y.yamldosyası üzerinden tarama yollarını, hariç tutulacak klasörleri, kural seviyelerini ve özel kural setlerini yapılandırabilirsiniz. - 🔌 Çoklu Çıktı Formatları:
console: Renkli ve düzenli terminal tablosu.json: Makine tarafından okunabilir JSON çıktısı.github: GitHub Actions PR süreçlerinde doğrudan inline hata göstermek için workflow formatı.
- 📊 Görsel Raporlama: Sonuçları modern bir HTML Dashboard raporu olarak dışarı aktarın.
📦 Kurulum
Composer ile projenize dahil edin:
composer require yaknet/accessibility-console
🚀 CLI Kullanımı
1. Yapılandırma Dosyası Oluşturma (init)
Projenizin kök dizininde varsayılan bir a11y.yaml konfigürasyon dosyası oluşturur:
bin/a11y init
2. Projeyi Tarama (scan / analyse)
a11y.yaml dosyasındaki kurallara ve dizinlere göre tüm projeyi tarar:
bin/a11y scan
Belirli bir dizini veya dosyayı hedef göstermek için:
bin/a11y scan resources/views
URL veya tek bir yerel HTML dosyasını taramak için (crawler desteğiyle):
bin/a11y scan https://test-siteniz.com --crawl
3. Baseline Yönetimi
Projeye ait mevcut tüm hataları a11y-baseline.json dosyasına kaydederek sonraki taramalarda yok sayılmasını sağlar:
bin/a11y scan --generate-baseline
4. Format ve Raporlama Seçenekleri
Hataları GitHub Actions formatında yazdırmak için:
bin/a11y scan --format=github
HTML Raporu kaydetmek için:
bin/a11y scan --report=report.html
5. AI Destekli Otomatik Düzeltme (fix)
Tespit edilen tüm hataları yapay zekaya analiz ettirip dosyalarınızı otomatik olarak tamir ettirin:
bin/a11y fix
Sadece neyin değişeceğini görmek için (--dry-run):
bin/a11y fix --dry-run
6. Kuralları Listeleme (rules)
Mevcut tüm WCAG kurallarını seviyeleri ve açıklamalarıyla birlikte listeler:
bin/a11y rules
⚙️ Yapılandırma (a11y.yaml)
Projenizi özelleştirmek için a11y.yaml dosyasını kullanabilirsiniz:
# Tarama yapılacak dizin veya dosyalar paths: - resources/views - public/templates # Hariç tutulacak dizinler exclude_paths: - vendor - node_modules - storage # WCAG seviyesi (1-9, varsayılan 4) level: 4 # Varsayılan çıktı formatı (console, json, github) format: console # Baseline dosyası yolu baseline: a11y-baseline.json # Kural özelleştirmeleri rules: exclude: - WCAG_1_3_1_FIELDSET # Bu kuralı çalıştırma include: - App\Rules\CustomAccessibilityRule # Özel kural ekle
🔐 Yapay Zeka API Anahtarı
AI düzeltme ve öneri özelliklerini kullanabilmek için projenizin kök dizininde bir .env dosyası oluşturup Google Gemini API anahtarınızı eklemeniz gerekir:
GEMINI_API_KEY=AIzaSyA...your_key_here
🤝 Katkıda Bulunma
Bu proje açık kaynaklıdır ve katkılarınıza açıktır. Lütfen hata bildirimleri için Issue açmaktan veya yeni özellikler için Pull Request göndermekten çekinmeyin.
📜 Lisans
Bu yazılım YakNet Bilişim tarafından geliştirilmiştir ve MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına göz atabilirsiniz.