ASO nedir? Web tarafı kapsamı
Accessibility & Sustainability Optimization (ASO), bir web sitesinin WCAG 2.2 AA (Web Content Accessibility Guidelines) ve W3C Web Sustainability Guidelines referanslarına göre erişilebilirlik + sürdürülebilirlik seviyesini ölçer.
İki standart şu noktada birleşir: hem ekran okuyucu kullanıcısı hem gezegen, mümkün olan en hafif ve en temiz sayfayı ister. Daha az JavaScript, semantik HTML, dark mode, variable font — A11Y'i de yeşil hosting'i de aynı yönde iter.
Bu kapsamda AIDE şu standartları temel alır:
- WCAG 2.2 AA: Web Content Accessibility Guidelines, Level AA
- WAI-ARIA 1.2: Accessible Rich Internet Applications
- W3C Web Sustainability Guidelines (WSG 1.0)
- The Green Web Foundation API (yeşil hosting doğrulama)
- HTML Living Standard: Semantic elements + lang attribute
AIDE ASO suite'i kullanıcının orijinal 14 maddelik tablosunun yalnızca 1 maddesini (Kod Verimliliği = 7 puan) sunucu-içi profiling gerektirdiği için ürünleştirmedi. Web-testable 13 maddeyi 100 puana yeniden ölçeklendirdi.
Kapsam dışı bırakılan tek madde
| Madde | Neden ölçülemez | |---|---| | Kod Verimliliği | Server-side CPU profili, runtime bench, query plan analizi gerektirir; HTML cevabından görünmez. APM (DataDog, New Relic, Sentry Performance) ile doğrulanır. |
13 check, 3 ASO kategorisi
Erişilebilirlik — 55 puan
aso-aria-labels(13) — Tüm interaktif elementlerde (buton, link, form input) okunabilir etiket:aria-label/aria-labelledby/title/ alt / anlamlı text. Sembol-only buton (≡, ×, +) ekran okuyucu tarafından kullanılamaz — etiketsiz sayılır.aso-keyboard-nav(11) — Anti-pattern tespiti:tabindex="3"gibi pozitif değerler (sıralamayı bozar),<a>href'siz,<div onclick>(klavye yakalanmaz) + skip link (<a href="#main">).aso-alt-text(9) —<img>alt kapsama oranı (decorativealt=""geçerli sayılır).aso-relative-units(6) — CSS font-size'dapxvsrem/emoranı. WCAG 1.4.4 — kullanıcı zoom'unu engelleme.aso-error-messages(6) — Form hata sinyalleri:aria-invalid="true",aria-describedby="err1",role="alert",aria-live="polite". Form yoksa SKIPPED.uxui-color-contrast-ratio(10, cross-profile) — Arka plan / metin kontrast oranı (WCAG AA ≥ 4.5:1 normal text, ≥ 3:1 large).aso-html-lang(3) —<html lang="tr">veya BCP 47 (tr-TR,en-US). Ekran okuyucu telaffuz motoru için kritik.aso-focus-visible(4) —:focus-visible { outline: ... }veya custom focus stili.outline: 0reset edip yerine bir şey koymamak = klavye kullanıcısı kaybolur.
Sürdürülebilirlik — 30 puan
aso-page-weight(12) — HTML + ilk 3 stylesheet + ilk 5 script + ilk 10 görsel byte toplamı (HEAD probe). ≤ 1MB PASS, 1-2MB 0.85, 2-3MB 0.6, 3-5MB 0.3, > 5MB FAIL. Web Sustainability hedef ≤ 1MB.aso-green-hosting(9) — The Green Web Foundation API (api.thegreenwebfoundation.org/api/v3/greencheck/<domain>). Domain'in CDN'i / hosting sağlayıcısı yenilenebilir enerji ile mi?aso-dark-mode(5) —<meta name="color-scheme" content="dark light">+ CSS@media (prefers-color-scheme: dark)query + toggle. OLED ekranda dark mode = %30-60 daha az enerji.aso-variable-fonts(4) — Google Fontswght@syntax /font-variation-settings/ range font-weight. 5+ ayrı woff2 yerine tek variable font = daha az HTTP + daha az toplam byte. Hiç custom font yoksa SKIPPED.
Yapı — 15 puan
aso-semantic-html(8) —<main>zorunlu +<nav>/<header>/<footer>/<article>/<section>/<aside>sayısı. Div sup yerine semantik HTML5 = ekran okuyucu landmark'ları.
Statik suite felsefesi
Tüm 12 native ASO check'i statik HTML / CSS parse / The Green Web API ile çalışır; render gerektirmez. Adaptif SKIPPED'ler:
- Form yok →
aso-error-messagesSKIPPED - Custom font yok →
aso-variable-fontsSKIPPED - CSS font-size yok →
aso-relative-unitsSKIPPED
Nasıl tetiklenir
UI'dan "ASO Kontrolü" sekmesi, ya da API:
curl -X POST https://api.aide.tr/v1/scans \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"profile": "aso"
}'
js_render parametresi ASO suite için gerekli değil — JS sonrası DOM
mutation A11Y testi için Playwright + axe-core gerektirir, suite v2
yol haritasında.
Score yorumlama
| Bant | ASO web durumu | |---|---| | ≥ 95 | Exemplary — WCAG 2.2 AA tam, ≤ 1MB sayfa, yeşil hosting, dark mode, variable font, tam semantic HTML. | | 85-94 | Çoğu yerinde, küçük A11Y eksiği veya 1-2MB sayfa ağırlığı. | | 70-84 | ARIA orta, focus-visible yok veya sayfa 2-3MB. | | 50-69 | Birkaç kritik anti-pattern (positive tabindex, alt yok, sembol-only buton) veya 3-5MB. | | < 50 | A11Y kritik düzeyde — ekran okuyucu kullanılamaz, sayfa 5MB+. |