Skip to content

Commit 27c5ded

Browse files
author
jozefrosenberger
committed
fix: blog content
1 parent 9bcb1d8 commit 27c5ded

File tree

3 files changed

+81
-64
lines changed

3 files changed

+81
-64
lines changed

src/blog/2026-01-23-flex-row-reverse-pristupnost.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/blog/2026-01-23-pocasie.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ date: 2026-01-23
99
Dnes je (aspoň u mňa) typické januárové počasie: trochu zima, trochu vietor a občas sa ukáže slnko.
1010

1111
Zajtra si to zopakujeme — a uvidíme, či sa do toho nepridá aj dážď.
12+
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
title: 'reading-flow: flex-visual; a prístupnosť vo flexboxe'
3+
excerpt: 'Ako zosúladiť vizuálne poradie prvkov s poriadkom čítania a fokusom — aj keď podpora ešte nie je všade.'
4+
tags: posts
5+
layout: layouts/post.njk
6+
date: 2026-01-23
7+
---
8+
9+
Keď robíš layout vo flexboxe, veľmi rýchlo narazíš na rozdiel medzi:
10+
11+
- **DOM poradím** (poradie elementov v HTML)
12+
- **vizuálnym poradím** (ako to vidíš na obrazovke)
13+
- **reading/focus poradím** (ako sa prvky prechádzajú čítačkou a klávesnicou)
14+
15+
Historicky sa to riešilo “trikmi” typu `order`, `row-reverse` alebo prehadzovaním DOM. Problém: vizuálny layout a klávesnicový focus sa často začnú správať inak, než používateľ očakáva.
16+
17+
`reading-flow: flex-visual;` je novší spôsob, ako povedať: “pri čítaní/fokuse sa drž vizuálneho poradia flexu”.
18+
19+
> Poznámka: Podpora ešte nie je všade, takže sa oplatí mať fallback.
20+
21+
## Príklad: vizuálne otočenie bez mätúceho tabovania
22+
23+
Máš dva prvky a na desktop-e chceš mať sidebar vizuálne vľavo, ale HTML nechceš prehadzovať:
24+
25+
```html
26+
<div class="layout">
27+
<main>…hlavný obsah…</main>
28+
<aside>…sidebar…</aside>
29+
</div>
30+
```
31+
32+
Bez `reading-flow` to často skončí tak, že:
33+
34+
- vizuálne je `aside` vľavo
35+
- ale focus/tab ide podľa DOM (`main``aside`), čo môže pôsobiť “proti smeru”
36+
37+
S `reading-flow: flex-visual;` vieš zosúladiť fokus/čítanie s vizuálnym poradím:
38+
39+
```css
40+
.layout {
41+
display: flex;
42+
flex-direction: row-reverse;
43+
gap: 1rem;
44+
reading-flow: flex-visual;
45+
}
46+
```
47+
48+
## Prečo je to lepšie pre prístupnosť
49+
50+
- **Klávesnica**: focus prechádza prvky v rovnakom poradí, v akom ich používateľ vidí.
51+
- **Čitateľnosť UI**: minimalizuješ “kde mi práve skočil fokus?” momenty.
52+
- **Menej DOM hackov**: nemusíš prehadzovať HTML len kvôli layoutu.
53+
54+
## Fallback (keď `reading-flow` nie je podporované)
55+
56+
Najbezpečnejšie je spraviť fallback tak, aby bol aspoň konzistentný:
57+
58+
- na menších šírkach nech je layout lineárny (napr. `flex-direction: column;`)
59+
- “otočenia” používaj len tam, kde to dáva zmysel a kde máš jasný fokus štýl
60+
61+
Príklad:
62+
63+
```css
64+
.layout {
65+
display: flex;
66+
flex-direction: column;
67+
gap: 1rem;
68+
}
69+
70+
@media (min-width: 48rem) {
71+
.layout {
72+
flex-direction: row-reverse;
73+
/* ak je podporované, zosúladí sa reading/focus s vizuálom */
74+
reading-flow: flex-visual;
75+
}
76+
}
77+
```
78+
79+
Ak chceš mať kompatibilitu úplne striktne (aj na starších prehliadačoch), stále platí: **najspoľahlivejšie je mať DOM poradie rovnaké ako vizuálne poradie**.
80+

0 commit comments

Comments
 (0)