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: Release v3.0.0 - PHPStan-style analysis, configuration, baseline, and advanced WCAG rules
This commit is contained in:
@@ -1,91 +1,139 @@
|
||||
# YakNet Accessibility Console 2.0 (AI-Powered)
|
||||
# YakNet Accessibility Console 2.9 (AI-Powered Static Analysis)
|
||||
|
||||
[](https://php.net)
|
||||
[](LICENSE)
|
||||
[](https://gemini.google.com)
|
||||
|
||||
**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.
|
||||
**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 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.
|
||||
- **🤖 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.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Kurulum
|
||||
|
||||
Composer ile projenize hemen dahil edin:
|
||||
Composer ile projenize dahil edin:
|
||||
|
||||
```bash
|
||||
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:
|
||||
### 1. Yapılandırma Dosyası Oluşturma (`init`)
|
||||
Projenizin kök dizininde varsayılan bir `a11y.yaml` konfigürasyon dosyası oluşturur:
|
||||
```bash
|
||||
bin/a11y scan https://test-siteniz.com
|
||||
bin/a11y init
|
||||
```
|
||||
|
||||
### 2. AI Destekli Tarama ve Raporlama
|
||||
Yapay zeka önerileriyle birlikte tarama yapın ve sonucu HTML olarak kaydedin:
|
||||
### 2. Projeyi Tarama (`scan` / `analyse`)
|
||||
`a11y.yaml` dosyasındaki kurallara ve dizinlere göre tüm projeyi tarar:
|
||||
```bash
|
||||
bin/a11y scan https://test-siteniz.com --ai --report=sonuc.html
|
||||
bin/a11y scan
|
||||
```
|
||||
|
||||
### 3. Otomatik Düzeltme (Self-Healing) - **DEVRİMSEL**
|
||||
Tespit edilen hataları yapay zekaya düzelttirin ve dosyalarınızı güncelleyin:
|
||||
Belirli bir dizini veya dosyayı hedef göstermek için:
|
||||
```bash
|
||||
bin/a11y fix https://test-siteniz.com --project-path=/var/www/projeniz
|
||||
bin/a11y scan resources/views
|
||||
```
|
||||
URL veya tek bir yerel HTML dosyasını taramak için (crawler desteğiyle):
|
||||
```bash
|
||||
bin/a11y scan https://test-siteniz.com --crawl
|
||||
```
|
||||
|
||||
## 💻 Kütüphane Olarak Kullanım
|
||||
|
||||
Kendi PHP uygulamalarınızın içine entegre edin:
|
||||
|
||||
```php
|
||||
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";
|
||||
}
|
||||
### 3. Baseline Yönetimi
|
||||
Projeye ait mevcut tüm hataları `a11y-baseline.json` dosyasına kaydederek sonraki taramalarda yok sayılmasını sağlar:
|
||||
```bash
|
||||
bin/a11y scan --generate-baseline
|
||||
```
|
||||
|
||||
## ⚙️ Yapılandırma
|
||||
### 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
|
||||
```
|
||||
|
||||
AI özelliklerini kullanabilmek için projenizin kök dizininde bir `.env` dosyası oluşturun ve **Google Gemini API** anahtarınızı ekleyin:
|
||||
### 5. AI Destekli Otomatik Düzeltme (`fix`)
|
||||
Tespit edilen tüm hataları yapay zekaya analiz ettirip dosyalarınızı otomatik olarak tamir ettirin:
|
||||
```bash
|
||||
bin/a11y fix
|
||||
```
|
||||
Sadece neyin değişeceğini görmek için (`--dry-run`):
|
||||
```bash
|
||||
bin/a11y fix --dry-run
|
||||
```
|
||||
|
||||
### 6. Kuralları Listeleme (`rules`)
|
||||
Mevcut tüm WCAG kurallarını seviyeleri ve açıklamalarıyla birlikte listeler:
|
||||
```bash
|
||||
bin/a11y rules
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Yapılandırma (`a11y.yaml`)
|
||||
|
||||
Projenizi özelleştirmek için `a11y.yaml` dosyasını kullanabilirsiniz:
|
||||
|
||||
```yaml
|
||||
# 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:
|
||||
|
||||
```env
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user