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
Migrate to modular strict rules v2.2.0
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace YakNet\AccessibilityConsole\Rules;
|
||||
|
||||
use YakNet\AccessibilityConsole\Core\AbstractRule;
|
||||
|
||||
class EmptyLinkRule extends AbstractRule
|
||||
{
|
||||
public function check(\DOMDocument $doc): array
|
||||
{
|
||||
$violations = [];
|
||||
$links = $doc->getElementsByTagName('a');
|
||||
|
||||
foreach ($links as $link) {
|
||||
if (trim($link->textContent) === '' && !$link->hasAttribute('aria-label')) {
|
||||
$violations[] = $this->createViolation(
|
||||
"Bağlantı (a) etiketi metin içermiyor ve 'aria-label' tanımlanmamış. Ekran okuyucular bu linkin nereye gittiğini anlayamaz.",
|
||||
$link
|
||||
);
|
||||
}
|
||||
}
|
||||
return $violations;
|
||||
}
|
||||
|
||||
public function getStandardId(): string { return 'WCAG 2.1 2.4.4'; }
|
||||
public function getSeverity(): string { return 'Critical'; }
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace YakNet\AccessibilityConsole\Rules;
|
||||
|
||||
use YakNet\AccessibilityConsole\Core\AbstractRule;
|
||||
|
||||
class HeadingOrderRule extends AbstractRule
|
||||
{
|
||||
public function check(\DOMDocument $doc): array
|
||||
{
|
||||
$violations = [];
|
||||
$xpath = new \DOMXPath($doc);
|
||||
$headings = $xpath->query('//h1|//h2|//h3|//h4|//h5|//h6');
|
||||
|
||||
$lastLevel = 0;
|
||||
foreach ($headings as $h) {
|
||||
$level = (int)substr($h->tagName, 1);
|
||||
if ($lastLevel > 0 && $level > $lastLevel + 1) {
|
||||
$violations[] = $this->createViolation(
|
||||
"Başlık hiyerarşisi bozuk. H{$lastLevel} etiketinden doğrudan H{$level} etiketine geçiş yapılmış. Sıralı olmalıdır.",
|
||||
$h
|
||||
);
|
||||
}
|
||||
$lastLevel = $level;
|
||||
}
|
||||
return $violations;
|
||||
}
|
||||
|
||||
public function getStandardId(): string { return 'WCAG 2.1 1.3.1'; }
|
||||
public function getSeverity(): string { return 'Major'; }
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace YakNet\AccessibilityConsole\Rules;
|
||||
|
||||
use YakNet\AccessibilityConsole\Core\AbstractRule;
|
||||
|
||||
class ImageAltRule extends AbstractRule
|
||||
{
|
||||
public function check(\DOMDocument $doc): array
|
||||
{
|
||||
$violations = [];
|
||||
$images = $doc->getElementsByTagName('img');
|
||||
|
||||
foreach ($images as $img) {
|
||||
if (!$img->hasAttribute('alt') || trim($img->getAttribute('alt')) === '') {
|
||||
$violations[] = $this->createViolation(
|
||||
"Görüntü (img) etiketi 'alt' özniteliğine sahip değil veya boş. WCAG 1.1.1 uyarınca her görüntünün bir açıklaması olmalıdır.",
|
||||
$img
|
||||
);
|
||||
}
|
||||
}
|
||||
return $violations;
|
||||
}
|
||||
|
||||
public function getStandardId(): string { return 'WCAG 2.1 1.1.1'; }
|
||||
public function getSeverity(): string { return 'Critical'; }
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace YakNet\AccessibilityConsole\Rules;
|
||||
|
||||
use YakNet\AccessibilityConsole\Core\RuleEngine;
|
||||
|
||||
class StrictRuleSet extends RuleEngine
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->addRule(new ImageAltRule());
|
||||
$this->addRule(new HeadingOrderRule());
|
||||
$this->addRule(new EmptyLinkRule());
|
||||
// Daha fazla kural buraya eklenebilir
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user