2026-09-12 10:12:05 +03:00
# YakNet Accessibility Console 3.3 (AI-Powered Static Analysis & WCAG 2.2 Linter)
2026-05-13 09:10:43 +03:00
[](https://php.net)
2026-08-16 22:00:30 +03:00
[](https://phpstan.org)
2026-09-12 10:12:05 +03:00
[](https://phpunit.de)
[](https://www.w3.org/WAI/standards-guidelines/wcag/)
2026-05-13 09:10:43 +03:00
[](LICENSE)
2026-08-16 22:00:30 +03:00
[](https://ai.google.dev)
2026-05-13 09:10:43 +03:00
2026-09-12 10:12:05 +03:00
**YakNet Accessibility Console** , web projelerinizdeki erişilebilirlik (WCAG 2.1, 2.2 ve WAI-ARIA) ve HTML söz dizimi hataları nı statik olarak analiz eden, **130 benzersiz kural setiyle** denetleyen, kurumsal CI/CD kalite kapı sı (Quality Gates) sunan ve **Yapay Zeka (Google Gemini AI) ile Çevrimdışı Deterministik Motor** desteğiyle kaynak kodunuzu otomatik tamir edebilen (Self-Healing) kurumsal düzeyde bir PHP statik analiz ve linter kütüphanesidir.
2026-06-23 01:02:15 +03:00
2026-08-16 22:00:30 +03:00
PHPStan ve PHP-CS-Fixer esintili modern mimarisiyle; Laravel Blade (`.blade.php` ), Twig (`.twig` ), PHP (`.php` ) ve standart HTML şablonları nı zı doğrudan tarar, baseline desteğiyle mevcut teknik borcu yönetir ve CI/CD pipeline süreçlerinize sı fı r yapı landı rmayla entegre olur.
2026-06-23 01:02:15 +03:00
---
2026-05-13 09:10:43 +03:00
## 🌟 Öne Çıkan Özellikler
2026-09-12 10:12:05 +03:00
- **🛡️ 130 Benzersiz WCAG 2.1 / 2.2 & WAI-ARIA Kuralı :** Algı lanabilir (Perceivable), Çalıştı rı labilir (Operable), Anlaşılabilir (Understandable) ve Sağlam (Robust) prensiplerine göre yapı landı rı lmış 5 kademeli kural havuzu. (Yeni: `LabelInName` WCAG 2.5.3, `RedundantEntry` WCAG 3.3.7, `TextSpacing` WCAG 1.4.12).
- **🏛️ Sektörel ve Mevzuat Ön Ayarları (Presets):** US Section 508, Avrupa Birliği EN 301 549 ve E-Ticaret (`--preset=section508|en301549|ecommerce` ) profilleriyle hedeflenmiş standart denetimi.
- **🏷️ Dinamik SVG Rozet Üretimi (Badges):** Tarama tamamlandığında sağlı k skoruna göre (yeşil/sarı /kı rmı zı ) canlı SVG rozet (`--badge=public/a11y-badge.svg` ) üretir.
- **📢 CI/CD Webhook Bildirimleri (Notifications):** Tarama sonuçları nı Slack ve Discord webhook kanalları na otomatik formatlanmış zengin mesajlarla iletir.
- **⚙️ Programatik Kural Denetleyicisi & İstatistikler:** `RuleController` ile DOM elementleri üzerinde doğrudan tekil kural yürütme ve `RuleExecutionStats` ile kural performans/yürütme süresi izleme.
- **⏱️ Gerçek Zamanlı İzleme Modu (`watch` ):** Şablon dosyaları nı (`.blade.php` , `.twig` , `.html` ) arka planda izler, dosya kaydedildiğinde anı nda hı zlı analiz yapı p konsolda canlı skor ve geri bildirim sunar.
- **🚦 CI/CD Kalite Kapı sı Eşikleri (Quality Gates):** `--min-score=90` , `--max-warnings=5` , `--fail-on=error` seçenekleriyle pipeline süreçlerinde esnek kalite denetimi sağlar.
2026-08-16 22:00:30 +03:00
- **🔍 HTML & Şablon Söz Dizimi (Syntax/AST) Linter'ı :**
- Aynı etiket üzerinde yinelenen nitelikler (`Duplicate Attributes` - HTML5 3.2.4 ihlali)
- Kapanmamış veya çapraz kapanmış yapı sal etiketler (`Mismatched / Unclosed Tags` )
- Void olmayan etiketlerde geçersiz self-closing kullanı mı (`<div />` , `<span />` , `<p />` )
- Boşluksuz bitişik nitelik söz dizimi (`<a href="..."class="...">` )
- Kapanmamış HTML yorum blokları (`<!--` )
- **⚡ Tek Geçişli (Single-Pass) Yüksek Hı zlı Kural Motoru:** DOM ağacı nı tek bir geçişte tarayarak büyük şablonlarda 5-10 kat daha hı zlı analiz gerçekleştirir.
- **📝 1:1 Satı r Eşlemeli Şablon Ön İşleyici (Template Preprocessor):** Blade direktiflerini (`@if` , `@foreach` , `@component` ), Twig blokları nı (`{% %}` , `{{ }}` ) ve PHP etiketlerini temizlerken satı r sayı ları nı birebir korur.
- **🎯 Yüksek Hassasiyetli Satı r & Sütun Bulucu (`PreciseElementLocator` ):** Çok satı rlı ve dinamik şablon bileşenlerinde ihlalin kaynak koddaki tam satı r ve sütun numarası nı saptar.
2026-09-12 10:12:05 +03:00
- **🤖 Yapay Zeka & Çevrimdışı Otomatik Onarı m (Self-Healing):**
- **Çevrimdışı (Offline) Mod:** API anahtarı olmadan güvenli deterministik tamirler (`alt=""` , `aria-hidden="true"` , `rel="noopener noreferrer"` , `tabindex="0"` , `scope` temizliği vb.).
- **AI Destekli Mod:** Karmaşık şablon mantığı ve etiketler için Google Gemini AI ile akı llı tamir.
2026-08-16 22:00:30 +03:00
- **📊 Erişilebilirlik Analitiği & Uyumluluk Matrisi:** POUR prensipleri, WCAG A/AA/AAA başarı oranları ve KLOC başına hata yoğunluğu (Defect Density) istatistikleri.
- **🛡️ Baseline Desteği (`a11y-baseline.json` ):** Mevcut hataları dondurarak CI/CD süreçlerinin yalnı zca **yeni eklenen** hatalarda kı rı lması nı sağlar.
2026-09-12 10:12:05 +03:00
- **🔌 Zengin Çıktı & Rapor Formatları :**
- Konsol tablosu (`console` ), JSON (`json` ), GitHub Actions (`github` ), GitLab SAST (`gitlab` )
- **OASIS SARIF 2.1.0 (`sarif` ):** GitHub Code Scanning / Security Alerts ve VS Code SARIF uyumlu.
- **JUnit XML (`junit` ):** Jenkins, GitLab CI, CircleCI, Bitbucket Pipelines uyumlu.
- **Çoklu Dışa Aktarı m (`--report` ):** HTML (`.html` ), JSON (`.json` ), SARIF (`.sarif` ), JUnit (`.xml` ), PDF (`.pdf` ) ve Excel (`.xlsx` ).
- **🏆 PHPStan Level 9 & %100 Tip Güvenliği:** Kod tabanı PHPStan en yüksek seviye (Level 9) ve 230 birim testi ile tam doğrulanmıştı r.
2026-06-23 01:02:15 +03:00
---
2026-05-13 09:10:43 +03:00
## 📦 Kurulum
2026-08-16 22:00:30 +03:00
Composer ile projenize geliştirme bağımlı lığı olarak ekleyin:
2026-05-13 09:10:43 +03:00
```bash
2026-08-16 22:00:30 +03:00
composer require --dev yaknet/accessibility-console
2026-05-13 09:10:43 +03:00
```
2026-06-23 01:02:15 +03:00
---
2026-08-16 22:00:30 +03:00
## 🚀 Komut Satı rı (CLI) Kullanı mı
2026-05-13 09:10:43 +03:00
2026-06-23 01:02:15 +03:00
### 1. Yapı landı rma Dosyası Oluşturma (`init`)
Projenizin kök dizininde varsayı lan bir `a11y.yaml` konfigürasyon dosyası oluşturur:
2026-05-13 09:10:43 +03:00
```bash
2026-06-23 01:02:15 +03:00
bin/a11y init
2026-05-13 09:10:43 +03:00
```
2026-08-16 22:00:30 +03:00
### 2. Projeyi veya Dizinleri Tarama (`scan`)
Yapı landı rma dosyası ndaki yollara göre tüm projeyi tarar:
2026-05-13 09:10:43 +03:00
```bash
2026-06-23 01:02:15 +03:00
bin/a11y scan
2026-05-13 09:10:43 +03:00
```
2026-08-16 22:00:30 +03:00
Belirli bir dizini veya şablon klasörünü hedef göstererek taramak için:
2026-05-13 09:10:43 +03:00
```bash
2026-06-23 01:02:15 +03:00
bin/a11y scan resources/views
2026-08-16 22:00:30 +03:00
bin/a11y scan templates/
2026-06-23 01:02:15 +03:00
```
2026-08-16 22:00:30 +03:00
Canlı bir web sitesini crawler desteğiyle taramak için:
2026-06-23 01:02:15 +03:00
```bash
2026-08-16 22:00:30 +03:00
bin/a11y scan https://siteniz.com --crawl
2026-05-13 09:10:43 +03:00
```
2026-09-12 10:12:05 +03:00
### 3. CI/CD Kalite Kapı sı Eşikleri (Quality Gates)
Pipeline süreçlerinde derlemenin kı rı lma şartları nı belirleyin:
2026-08-16 22:00:30 +03:00
```bash
2026-09-12 10:12:05 +03:00
# Sağlı k skoru 90'ı n altı ndaysa derlemeyi başarı sı z yap:
bin/a11y scan --min-score= 90
# En fazla 3 uyarı ya izin ver:
bin/a11y scan --max-warnings= 3
# Yalnı zca kritik ve hata seviyesindeki ihlallerde kı rı l (uyarı ları göz ardı et):
bin/a11y scan --fail-on= error
2026-08-16 22:00:30 +03:00
```
2026-09-12 10:12:05 +03:00
### 4. Gerçek Zamanlı İzleme Modu (`watch`)
Geliştirme yaparken şablon dosyaları nı zı izleyin ve dosya kaydedildiğinde anı nda otomatik re-scan çalıştı rı n:
2026-06-23 01:02:15 +03:00
```bash
2026-09-12 10:12:05 +03:00
bin/a11y watch resources/views
2026-05-13 09:10:43 +03:00
```
2026-08-16 22:00:30 +03:00
### 5. Format ve Raporlama Seçenekleri
2026-09-12 10:12:05 +03:00
- **GitHub Code Scanning / SARIF 2.1.0 formatı :**
```bash
bin/a11y scan --format=sarif
` ``
- **JUnit XML formatı (Jenkins, GitLab CI):**
` ``bash
bin/a11y scan --format=junit
` ``
- **GitHub Actions bildirim formatı :**
2026-08-16 22:00:30 +03:00
` ``bash
bin/a11y scan --format=github
` ``
- **JSON formatı nda çıktı :**
` ``bash
bin/a11y scan --format=json
` ``
2026-09-12 10:12:05 +03:00
- **Çoklu Dışa Aktarı m Formatları (` --report`):**
2026-08-16 22:00:30 +03:00
` ``bash
2026-09-12 10:12:05 +03:00
bin/a11y scan --report=rapor.html # İnteraktif HTML Dashboard
bin/a11y scan --report=rapor.pdf # PDF Sertifika ve Denetim Raporu
bin/a11y scan --report=rapor.xlsx # Microsoft Excel Çalışma Kitabı
bin/a11y scan --report=rapor.sarif # SARIF 2.1.0 Dosyası
bin/a11y scan --report=rapor.xml # JUnit XML Raporu
2026-08-16 22:00:30 +03:00
` ``
2026-05-13 09:10:43 +03:00
2026-09-12 10:12:05 +03:00
### 6. Mevzuat Ön Ayarları (` --preset`) ve Rozet Üretimi (` --badge`)
Mevzuat veya sektörel kurallara göre hedeflenmiş tarama yapı n ve canlı SVG rozet oluşturun:
2026-06-23 01:02:15 +03:00
` ``bash
2026-09-12 10:12:05 +03:00
# US Section 508 federal uyumluluk profiliyle tara:
bin/a11y scan --preset=section508
# Avrupa Birliği EN 301 549 kamu web standardı profiliyle tara:
bin/a11y scan --preset=en301549
# E-Ticaret ödeme ve sepet akışları profiliyle tara:
bin/a11y scan --preset=ecommerce
# Tarama sonucunu SVG rozet olarak kaydet (README veya CI/CD artifact için):
bin/a11y scan --badge=public/badges/a11y.svg
2026-06-23 01:02:15 +03:00
` ``
2026-09-12 10:12:05 +03:00
### 7. Otomatik Düzeltme (` fix`)
Yapay zeka veya çevrimdışı yerel motor ile kaynak dosyaları nı zı onarı n:
2026-06-23 01:02:15 +03:00
` ``bash
2026-09-12 10:12:05 +03:00
# Gemini AI desteğiyle otomatik onarı m:
bin/a11y fix
# Gemini API anahtarı olmadan tamamen çevrimdışı (offline) yerel motorla onarı m:
bin/a11y fix --offline
# Dosyaları değiştirmeden yapı lacak düzeltmeleri önizleme:
bin/a11y fix --offline --dry-run
` ``
### 8. Kuralları Listeleme ve Filtreleme (` rules`)
Kütüphanede tanı mlı 130 kuralı listeleyin, arayı n ve filtreleyin:
` ``bash
# Tüm kuralları listele:
2026-06-23 01:02:15 +03:00
bin/a11y rules
2026-09-12 10:12:05 +03:00
# Kural adı na veya açıklaması na göre ara:
bin/a11y rules --search=contrast
# Seviye ve standarda göre filtrele:
bin/a11y rules --standard=AA --level=3
2026-06-23 01:02:15 +03:00
` ``
---
2026-08-16 22:00:30 +03:00
## ⚙️ Yapı landı rma Dosyası (` a11y.yaml`)
2026-06-23 01:02:15 +03:00
2026-08-16 22:00:30 +03:00
Projenizin ihtiyaçları na göre ` a11y.yaml` dosyası nı özelleştirebilirsiniz:
2026-06-23 01:02:15 +03:00
` ``yaml
2026-08-16 22:00:30 +03:00
# Tarama yapı lacak dizin veya şablon yolları
2026-06-23 01:02:15 +03:00
paths:
- resources/views
2026-08-16 22:00:30 +03:00
- templates
- public/partials
2026-06-23 01:02:15 +03:00
2026-08-16 22:00:30 +03:00
# Hariç tutulacak klasörler
2026-06-23 01:02:15 +03:00
exclude_paths:
- vendor
- node_modules
- storage
2026-08-16 22:00:30 +03:00
- tests/fixtures
2026-06-23 01:02:15 +03:00
2026-08-16 22:00:30 +03:00
# Kural Seviyesi (1: Kritik A -> 5: Kapsamlı AA/AAA)
2026-06-23 01:02:15 +03:00
level: 4
# Varsayı lan çıktı formatı (console, json, github)
format: console
# Baseline dosyası yolu
baseline: a11y-baseline.json
2026-08-16 22:00:30 +03:00
# Kural istisnaları ve özel kurallar
2026-06-23 01:02:15 +03:00
rules:
exclude:
2026-08-16 22:00:30 +03:00
- WCAG_1_3_1_FIELDSET # Belirli bir kuralı devre dışı bı rak
2026-06-23 01:02:15 +03:00
include:
2026-08-16 22:00:30 +03:00
- App\Rules\CustomBrandAccessibilityRule # Özel proje kuralı ekle
2026-06-23 01:02:15 +03:00
` ``
---
2026-08-16 22:00:30 +03:00
## 📐 Kural Seviyeleri (Rule Levels)
2026-06-23 01:02:15 +03:00
2026-08-16 22:00:30 +03:00
| Seviye | Adı | Kapsam | Örnek Kurallar |
| :--- | :--- | :--- | :--- |
| **Level 1** | Essential | Temel WCAG 2.1 A | ` ImageAlt`, ` ButtonName`, ` HtmlHasLang`, ` PageTitle` |
| **Level 2** | Standard | Standart WCAG 2.1/2.2 A & Söz Dizimi | ` HtmlSyntaxValid`, ` FormLabel`, ` HeadingOrder`, ` TrackValidation` |
| **Level 3** | Enhanced | Gelişmiş WAI-ARIA & Formlar | ` DuplicateId`, ` NestedInteractive`, ` AriaCurrentValid`, ` AccessibleAuth` |
| **Level 4** | Advanced | Kapsamlı WCAG 2.2 AA & UX | ` TargetSizeMinimum`, ` DraggingMovements`, ` FocusNotObscured`, ` ColorContrast` |
| **Level 5** | Strict | Çok Katı AAA & Best Practices | ` FocusTrapping`, ` ColorBlindnessContrast`, ` NoFocusOutline` |
---
## 🔐 Yapay Zeka (AI) API Yapı landı rması
AI Self-Healing ve otomatik kod onarı m özelliklerini kullanabilmek için projenizin kök dizinindeki ` .env` dosyası na **Google Gemini API** anahtarı nı zı ekleyin:
2026-05-13 09:10:43 +03:00
` ``env
2026-08-16 22:00:30 +03:00
GEMINI_API_KEY=AIzaSyA...your_api_key_here
` ``
---
## 🧪 Geliştirme ve Test
` ``bash
# Tüm PHPUnit testlerini çalıştı r
vendor/bin/phpunit
# PHPStan Level 9 statik tip analizini çalıştı r
vendor/bin/phpstan analyse -l 9 src/
2026-05-13 09:10:43 +03:00
` ``
2026-06-23 01:02:15 +03:00
---
2026-05-13 09:10:43 +03:00
## 🤝 Katkı da Bulunma
2026-08-16 22:00:30 +03:00
1. Bu depoyu forklayı n (` fork`).
2. Yeni bir özellik dalı açın (` git checkout -b feature/harika-kural`).
3. Değişikliklerinizi commit edin (` git commit -m 'feat: Yeni WCAG kuralı eklendi'`).
4. Dalı nı za push yapı n (` git push origin feature/harika-kural`).
5. Bir **Pull Request** açın.
---
2026-05-13 09:10:43 +03:00
## 📜 Lisans
2026-08-16 22:00:30 +03:00
Bu proje **YakNet Bilişim** tarafı ndan geliştirilmiştir ve **MIT Lisansı ** altı nda lisanslanmıştı r. Detaylar için [LICENSE ](LICENSE ) dosyası na göz atabilirsiniz.