Git Komut Rehberi & Terminal Asistanı
Sıfırdan Yeni Bir Depo Başlatın:
Mevcut Bir Git Deposu veya Klasörü Gönderin:
Hataları Geri Alma, İptal & Temizlik:
Son commit'i geri al (yapılan değişiklikleri korur):
git reset --soft HEAD~1
Yapılan yerel değişiklikleri iptal et (çalışma ağacını temizler):
git restore .
Takip edilmeyen gereksiz dosyaları sil:
git clean -fd
Değişiklikleri geçici sakla ve geri getir (stash):
git stash git stash pop
Dal (Branch) ve Sürüm Etiketleri:
Yeni dal aç ve geçiş yap:
git checkout -b yeni-ozellik git push -u origin yeni-ozellik
Sürüm etiketi (tag) oluştur ve gönder:
git tag -a v1.0.0 -m "Sürüm 1.0.0" git push origin --tags
feat(v3.2.7): expand WCAG ruleset to 127 rules, add HTML syntax linter, single-pass rule engine, template preprocessor, and accessibility analytics
This commit is contained in:
@@ -1,40 +1,49 @@
|
||||
# YakNet Accessibility Console 2.9 (AI-Powered Static Analysis)
|
||||
# YakNet Accessibility Console 3.0 (AI-Powered Static Analysis & WCAG 2.2 Linter)
|
||||
|
||||
[](https://php.net)
|
||||
[](https://phpstan.org)
|
||||
[](https://phpunit.de)
|
||||
[](https://www.w3.org/WAI/standards-guidelines/wcag/)
|
||||
[](LICENSE)
|
||||
[](https://gemini.google.com)
|
||||
[](https://ai.google.dev)
|
||||
|
||||
**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.
|
||||
**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, **127 benzersiz kural setiyle** denetleyen ve **Yapay Zeka (Google Gemini AI)** desteğiyle kaynak kodunuzu otomatik tamir edebilen (Self-Healing) kurumsal düzeyde bir PHP statik analiz ve linter 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.
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## 🌟 Ö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.json` oluş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.yaml` dosyası ü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.
|
||||
- **🛡️ 127 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 (Level 1-5) kural havuzu.
|
||||
- **🔍 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.
|
||||
- **🤖 Yapay Zeka ile Otomatik Onarım (AI Self-Healing):** Tespit edilen WCAG ve söz dizimi hataları için Google Gemini AI üzerinden akıllı çözüm ve tamir kodları üretir; kaynak dosyalarınızı (`--dry-run` desteğiyle) anında onarır.
|
||||
- **📊 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.
|
||||
- **🔌 Çoklu Çıktı Formatları:** Renkli konsol tablosu (`console`), makine tarafından okunabilir JSON (`json`), GitHub Actions PR bildirimleri (`github`) ve interaktif HTML Dashboard raporu (`--report`).
|
||||
- **🏆 PHPStan Level 9 & %100 Tip Güvenliği:** Kod tabanı PHPStan en yüksek seviye (Level 9) ve 191+ birim testi ile tam doğrulanmıştır.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Kurulum
|
||||
|
||||
Composer ile projenize dahil edin:
|
||||
Composer ile projenize geliştirme bağımlılığı olarak ekleyin:
|
||||
|
||||
```bash
|
||||
composer require yaknet/accessibility-console
|
||||
composer require --dev yaknet/accessibility-console
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 CLI Kullanımı
|
||||
## 🚀 Komut Satırı (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:
|
||||
@@ -42,71 +51,84 @@ Projenizin kök dizininde varsayılan bir `a11y.yaml` konfigürasyon dosyası ol
|
||||
bin/a11y init
|
||||
```
|
||||
|
||||
### 2. Projeyi Tarama (`scan` / `analyse`)
|
||||
`a11y.yaml` dosyasındaki kurallara ve dizinlere göre tüm projeyi tarar:
|
||||
### 2. Projeyi veya Dizinleri Tarama (`scan`)
|
||||
Yapılandırma dosyasındaki yollara göre tüm projeyi tarar:
|
||||
```bash
|
||||
bin/a11y scan
|
||||
```
|
||||
Belirli bir dizini veya dosyayı hedef göstermek için:
|
||||
Belirli bir dizini veya şablon klasörünü hedef göstererek taramak için:
|
||||
```bash
|
||||
bin/a11y scan resources/views
|
||||
bin/a11y scan templates/
|
||||
```
|
||||
URL veya tek bir yerel HTML dosyasını taramak için (crawler desteğiyle):
|
||||
Canlı bir web sitesini crawler desteğiyle taramak için:
|
||||
```bash
|
||||
bin/a11y scan https://test-siteniz.com --crawl
|
||||
bin/a11y scan https://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:
|
||||
### 3. Kural Seviyesi Belirleme (`--level`)
|
||||
1 (Temel) ile 5 (Çok Katı / Strict) arasında bir seviye belirleyin:
|
||||
```bash
|
||||
bin/a11y scan --level=5
|
||||
```
|
||||
|
||||
### 4. Baseline (Teknik Borç Dondurma) Yönetimi
|
||||
Mevcut tüm ihlalleri `a11y-baseline.json` dosyasına kaydederek sonraki taramalarda yok sayılmasını sağlar:
|
||||
```bash
|
||||
bin/a11y scan --generate-baseline
|
||||
```
|
||||
|
||||
### 4. Format ve Raporlama Seçenekleri
|
||||
Hataları GitHub Actions formatında yazdırmak için:
|
||||
```bash
|
||||
bin/a11y scan --format=github
|
||||
```
|
||||
HTML Raporu kaydetmek için:
|
||||
```bash
|
||||
bin/a11y scan --report=report.html
|
||||
```
|
||||
### 5. Format ve Raporlama Seçenekleri
|
||||
- **GitHub Actions formatında çıktı:**
|
||||
```bash
|
||||
bin/a11y scan --format=github
|
||||
```
|
||||
- **JSON formatında çıktı:**
|
||||
```bash
|
||||
bin/a11y scan --format=json
|
||||
```
|
||||
- **İnteraktif HTML Dashboard Raporu:**
|
||||
```bash
|
||||
bin/a11y scan --report=a11y-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:
|
||||
### 6. Yapay Zeka Destekli Otomatik Düzeltme (`fix`)
|
||||
Tespit edilen erişilebilirlik sorunlarını yapay zeka ile kaynak dosyalarınızda otomatik olarak onarın:
|
||||
```bash
|
||||
bin/a11y fix
|
||||
```
|
||||
Sadece neyin değişeceğini görmek için (`--dry-run`):
|
||||
Dosyaları değiştirmeden yalnızca yapılacak düzeltme önerilerini görmek için:
|
||||
```bash
|
||||
bin/a11y fix --dry-run
|
||||
```
|
||||
|
||||
### 6. Kuralları Listeleme (`rules`)
|
||||
Mevcut tüm WCAG kurallarını seviyeleri ve açıklamalarıyla birlikte listeler:
|
||||
### 7. Kuralları Listeleme (`rules`)
|
||||
Kütüphanede tanımlı 127 kuralı seviyeleri, WCAG standartları ve açıklamalarıyla listeler:
|
||||
```bash
|
||||
bin/a11y rules
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Yapılandırma (`a11y.yaml`)
|
||||
## ⚙️ Yapılandırma Dosyası (`a11y.yaml`)
|
||||
|
||||
Projenizi özelleştirmek için `a11y.yaml` dosyasını kullanabilirsiniz:
|
||||
Projenizin ihtiyaçlarına göre `a11y.yaml` dosyasını özelleştirebilirsiniz:
|
||||
|
||||
```yaml
|
||||
# Tarama yapılacak dizin veya dosyalar
|
||||
# Tarama yapılacak dizin veya şablon yolları
|
||||
paths:
|
||||
- resources/views
|
||||
- public/templates
|
||||
- templates
|
||||
- public/partials
|
||||
|
||||
# Hariç tutulacak dizinler
|
||||
# Hariç tutulacak klasörler
|
||||
exclude_paths:
|
||||
- vendor
|
||||
- node_modules
|
||||
- storage
|
||||
- tests/fixtures
|
||||
|
||||
# WCAG seviyesi (1-9, varsayılan 4)
|
||||
# Kural Seviyesi (1: Kritik A -> 5: Kapsamlı AA/AAA)
|
||||
level: 4
|
||||
|
||||
# Varsayılan çıktı formatı (console, json, github)
|
||||
@@ -115,30 +137,60 @@ format: console
|
||||
# Baseline dosyası yolu
|
||||
baseline: a11y-baseline.json
|
||||
|
||||
# Kural özelleştirmeleri
|
||||
# Kural istisnaları ve özel kurallar
|
||||
rules:
|
||||
exclude:
|
||||
- WCAG_1_3_1_FIELDSET # Bu kuralı çalıştırma
|
||||
- WCAG_1_3_1_FIELDSET # Belirli bir kuralı devre dışı bırak
|
||||
include:
|
||||
- App\Rules\CustomAccessibilityRule # Özel kural ekle
|
||||
- App\Rules\CustomBrandAccessibilityRule # Özel proje kuralı ekle
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Yapay Zeka API Anahtarı
|
||||
## 📐 Kural Seviyeleri (Rule Levels)
|
||||
|
||||
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:
|
||||
| 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:
|
||||
|
||||
```env
|
||||
GEMINI_API_KEY=AIzaSyA...your_key_here
|
||||
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/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🤝 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.
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## 📜 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](LICENSE) dosyasına göz atabilirsiniz.
|
||||
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.
|
||||
Reference in New Issue
Block a user