From c3264149ea248c0eda491a164f68bec9a6ea623e Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 09:12:07 +0300 Subject: [PATCH] fix: support keyboard navigation in tender details --- docs/quality/evidence/qa-detail-keyboard.txt | 8 +++++ docs/quality/uygulama-durumu.md | 7 +++++ src/components/TenderCard.jsx | 6 ++-- src/components/TenderDetailModal.jsx | 33 ++++++++++++++++++-- 4 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 docs/quality/evidence/qa-detail-keyboard.txt diff --git a/docs/quality/evidence/qa-detail-keyboard.txt b/docs/quality/evidence/qa-detail-keyboard.txt new file mode 100644 index 0000000..efefc11 --- /dev/null +++ b/docs/quality/evidence/qa-detail-keyboard.txt @@ -0,0 +1,8 @@ +Yerel sentetik QA: başlık düğmesinde Enter ile açma, dialog adı, Escape ile kapatma ve odağın geri dönmesi +{ + "dialogCount": 0, + "focusTag": "BUTTON", + "focusText": "QA — Giresun laboratuvar", + "hasPopup": "dialog" +} +Ek gözlemler: İlk odak Listeye Geri Dön; Shift+Tab son Google/Outlook düğmesine; son düğmede Tab ilk düğmeye dönüyor. diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index 682dcc1..2b393db 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -177,3 +177,10 @@ SQLite snapshot, referanslı belge kopyası, SHA-256 manifesti, bütünlük kont - Parçalı analizde şema doğrulaması birleştirmeden önce yapılıyor. Null kalem/alıntı gibi hatalı bir parça tüm birleştirmeyi çökertmiyor; başarısız kaynak aralığı olarak korunuyor. Hiçbir geçerli parça yoksa analiz başarısız oluyor. - Kanıt: 54/54 test geçti. Yeni regresyonlar hatalı nested alanlar, metin olarak false, eksik miktar/zorunluluk, bozuk parça ve tamamen başarısız belgeyi kapsıyor. Mevcut test örneklerinden iki olumlu fixture kaynak miktarı/zorunluluk bilgisi içerecek şekilde tamamlandı. - Sınır: Bu şema doğrulaması anlam veya mevzuat doğruluğunu kanıtlamaz. Gerçek sağlayıcı yanıtları, kaynak belgeyle semantik çelişki kontrolü ve uzun işlerin kalıcı devam ettirilmesi hâlâ açık. + +### D09 — İhale detayında klavye erişimi + +- Ana listedeki ihale başlığı gerçek düğme oldu; Enter/Space ile detay açılabiliyor, görünür klavye odağı ve dialog işareti var. +- Detay penceresine dialog rolü, başlığıyla erişilebilir ad, kapatma düğmesine ad, başlangıç odağı, Tab/Shift+Tab döngüsü ve Escape ile kapanış eklendi. Kapanışta hâlâ DOM’da bulunan açan kontrole odak dönüyor. İç içe başka dialogdan gelen olaylar alt pencereyi kapatmıyor. +- Tarayıcı kanıtı: `evidence/qa-detail-keyboard.txt`. Yerel sentetik Giresun kaydı başlık düğmesinden Enter ile açıldı; ilk/son kontrol arasında ileri-geri döngü ve Escape sonrası başlık düğmesine dönüş doğrulandı. Sağdaki yaklaşan ihale düğmesinden açılış/dönüş de geçti. +- Üretim derlemesi geçti; mevcut paket boyutu uyarıları sürüyor. Bu kontrol bütün modallerin erişilebilirliğini, ekran okuyucu deneyimini veya gerçek mobil genişlikleri doğrulamaz. Arka planın inert yönetimi ve üst üste farklı modallerin tüm kombinasyonları ayrıca ele alınmalı. diff --git a/src/components/TenderCard.jsx b/src/components/TenderCard.jsx index d25aea9..4014d61 100644 --- a/src/components/TenderCard.jsx +++ b/src/components/TenderCard.jsx @@ -45,9 +45,9 @@ export const TenderCard = ({ tender }) => { {/* Top Header Row */}
-

+ {/* Bookmark Star Button */}
-

+

{tender.baslik}