feat(ux): anlamsal yapı ve metin — içeriğe geç linki, sıralama yok sayfası

- Site geneli "İçeriğe geç" linki (klavyede ilk durak, WCAG 2.4.1)
- Sıralama yok sayfası: "Geçerli bir sıralama gerekli" yerine "Önce
  sıralamanı gir" ve ne işe yaradığı; CTA ok sonda, 48 px
- Rapor satırı aç/kapa düğmesi açtığı bölgeye bağlandı (aria-controls)
- Liste hazırlanırken "sayfayı kapatma" uyarısı 12 px griden okunur
  boya; bekleme metinleri "…" ile; başlık iri
- /sonuc başlığında dengeli satır kırılımı (text-balance)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-24 01:31:20 +03:00
parent aef4adc90b
commit ad086c3eca
5 changed files with 39 additions and 18 deletions

View File

@@ -304,8 +304,8 @@ export function ListeUretici({
onClick={() => profil && void uret(profil)}
className="mt-6 cursor-pointer bg-orange-500 text-white transition-colors duration-200 hover:bg-orange-600"
>
<RefreshCcw className="size-4" aria-hidden />
Tekrar dene
<RefreshCcw className="size-4" aria-hidden />
</Button>
{profil ? (
<p className="mt-4 text-xs text-slate-500">
@@ -358,7 +358,7 @@ function SunucuYokEkrani() {
disabled={deniyor}
className="mt-6 cursor-pointer bg-orange-500 text-white transition-colors duration-200 hover:bg-orange-600"
>
{deniyor ? "Kontrol ediliyor" : "Listemi aç"}
{deniyor ? "Kontrol ediliyor…" : "Listemi aç"}
<ArrowRight className="size-4" aria-hidden />
</Button>
<p aria-live="polite" className="mt-4 text-xs text-slate-500">
@@ -401,7 +401,7 @@ function UretimGovdesi({ uzunSurdu }: { uzunSurdu: boolean }) {
return (
<section aria-live="polite">
<header className="flex flex-col items-center gap-1.5 text-center">
<h1 className="font-heading text-xl font-bold sm:text-2xl">
<h1 className="font-heading text-2xl font-bold text-slate-900 sm:text-3xl">
Listen hazırlanıyor
</h1>
{uzunSurdu ? (
@@ -426,8 +426,8 @@ function UretimGovdesi({ uzunSurdu }: { uzunSurdu: boolean }) {
</Button>
</>
) : (
<p className="text-xs text-slate-400">
Bu işlem yarım dakika kadar sürebilir, sayfayı kapatma.
<p className="text-sm font-medium text-slate-600">
Yarım dakika kadar sürebilir; bu sayfayı kapatma.
</p>
)}
</header>

View File

@@ -293,6 +293,7 @@ export function RaporListesi({
<button
type="button"
aria-expanded={acikMi}
aria-controls={`rapor-satir-${t.sira}`}
onClick={(e) => {
e.stopPropagation();
tiklandi(t.sira);
@@ -311,7 +312,7 @@ export function RaporListesi({
</TableRow>
{acikMi ? (
<TableRow className="hover:bg-transparent">
<TableRow id={`rapor-satir-${t.sira}`} className="hover:bg-transparent">
<TableCell
colSpan={SUTUN_SAYISI}
className="whitespace-normal bg-slate-50 px-4 py-5 sm:px-5"