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: *
- google-gemini-php/client: ^1.0
- monolog/monolog: ^3.0
- 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 kütüphanesidir.
🌟 Öne Çıkan Özellikler
- 🤖 AI Self-Healing: Tespit edilen WCAG hataları için Google Gemini AI üzerinden akıllı çözüm önerileri alır ve isterseniz kaynak kodunuzu (Blade, Twig, PHP) otomatik olarak tamir eder.
- ⚡ Modern CLI: Rust/Vite tarzı şık bir komut satırı arayüzü ile saniyeler içinde tarama ve düzeltme yapın.
- 📊 Görsel Dashboard: Tarama sonuçlarını modern ve şık bir HTML raporu olarak dışarı aktarın.
- 🔍 Akıllı Kaynak Tespiti: Hataları projenizdeki tam dosya yolu ve satır numarası ile eşleştirir.
- 🛠️ Geliştirici Dostu: PSR-4 uyumlu, modern PHP 8.2+ mimarisi ve genişletilebilir kural motoru.
📦 Kurulum
Composer ile projenize hemen dahil edin:
composer require yaknet/accessibility-console
🚀 CLI Kullanımı
Kütüphane, vendor/bin/a11y (veya kütüphane dizininde bin/a11y) üzerinden kullanılabilir.
1. Standart Tarama
Bir URL'yi veya yerel bir HTML dosyasını tarayın:
bin/a11y scan https://test-siteniz.com
2. AI Destekli Tarama ve Raporlama
Yapay zeka önerileriyle birlikte tarama yapın ve sonucu HTML olarak kaydedin:
bin/a11y scan https://test-siteniz.com --ai --report=sonuc.html
3. Otomatik Düzeltme (Self-Healing) - DEVRİMSEL
Tespit edilen hataları yapay zekaya düzelttirin ve dosyalarınızı güncelleyin:
bin/a11y fix https://test-siteniz.com --project-path=/var/www/projeniz
💻 Kütüphane Olarak Kullanım
Kendi PHP uygulamalarınızın içine entegre edin:
use YakNet\AccessibilityConsole\Core\Scanner; use YakNet\AccessibilityConsole\Rules\StandardRuleSet; // 1. Scanner'ı ve Kuralları Hazırla $scanner = new Scanner(); foreach (StandardRuleSet::all() as $rule) { $scanner->addRule($rule); } // 2. HTML İçeriğini Tara $html = file_get_contents('view.html'); $violations = $scanner->scan($html); // 3. Sonuçları İşle foreach ($violations as $v) { echo "Hata: {$v->message} (Kural: {$v->ruleId})\n"; }
⚙️ Yapılandırma
AI özelliklerini kullanabilmek için projenizin kök dizininde bir .env dosyası oluşturun ve Google Gemini API anahtarınızı ekleyin:
GEMINI_API_KEY=AIzaSyA...your_key_here
🛠️ Mevcut Kurallar (WCAG 2.1)
- A11Y_VIEWPORT: Zoom engelleme kontrolü.
- WCAG_1_1_1_ALT: Görsel alt metin kontrolü.
- WCAG_1_3_1_LABEL: Form etiketi kontrolü.
- WCAG_1_3_1_FIELDSET: Fieldset/Legend kontrolü.
- WCAG_1_3_1_HEADING: Başlık hiyerarşisi kontrolü.
- WCAG_2_4_4_LINK_TEXT: Boş link kontrolü.
- WCAG_3_1_1_LANG: HTML dil etiketi kontrolü.
- WCAG_4_1_2_BUTTON: Boş buton kontrolü.
🤝 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.