Discover how reading direction affects eye movement patterns and learn where to place key content for maximum impact in both LTR and RTL layouts.
Amira Hassan
Linguist and typographer specializing in Arabic script history and evolution.
When was the last time you read every word on a webpage? If you're like most people, the answer is: almost never.
We don't read websites—we scan them. Our eyes jump from point to point, seeking information landmarks and evaluating whether something is worth deeper attention. This scanning behavior follows predictable patterns that are deeply influenced by our native reading direction.
Understanding these patterns is crucial for designers. Place your call-to-action in the wrong spot, and it becomes invisible. Put your navigation in the expected place, and users find their way effortlessly.
One of the most famous findings in web usability is the F-pattern, first documented by the Nielsen Norman Group through eye-tracking studies of English-speaking users.
When reading left-to-right content, users' eyes typically move in an F-shaped pattern:

Hot zones (high attention areas):
Cold zones (low attention areas):
Design implications:
The F-pattern is strongest on text-heavy pages (articles, documentation, search results). Image-heavy pages show different patterns, often more distributed or Z-shaped.
Here's what many designers get wrong: they assume RTL users read in a backwards F-pattern. Actually, the pattern mirrors horizontally.
When Arabic or Hebrew speakers scan RTL content, they follow a mirrored F:


Hot zones in RTL:
Cold zones in RTL:
Design implications:
Don't just horizontally flip your LTR design and call it RTL. The mirrored F-pattern means most things flip, but some elements (like centered content or vertical lists) might stay the same.
Multiple studies have confirmed that reading direction influences scanning behavior:
Study 1: Ehmke & Wilson (2007)
Study 2: Nielsen Norman Group
Study 3: Barber & Kutas (2007)
"Reading direction is so deeply ingrained that it affects not just how we read text, but how we scan any visual information—including layouts with no text at all."
Regardless of direction, users pay the most attention to:
This means the top-start corner is your most valuable real estate in any language.
Option 1: Mirror the logo position
Pros:
Cons:
Option 2: Always top-left
Pros:
Cons:
| Industry | Recommendation | Reason |
|---|---|---|
| Global tech | Always top-left | Brand consistency, bilingual users |
| Local e-commerce | Mirror (top-start) | Better UX for native audience |
| Financial services | Always top-left | Regulatory, consistency expectations |
| Media/News | Mirror (top-start) | Optimize for local readers |
| Social platforms | Mirror (top-start) | Native feel matters more |
| SaaS/Enterprise | Always top-left | International teams, consistency |
My recommendation: Mirror the logo unless you have a strong brand consistency reason not to. User experience should usually win over cross-market consistency.
Test with your specific audience. Run a quick preference test showing both options. Let real users tell you what feels right for your brand and context.
Primary navigation should mirror:
/* LTR: Navigation on the left */
[dir="ltr"] .sidebar-nav {
inset-inline-start: 0;
}
/* RTL: Navigation on the right */
[dir="rtl"] .sidebar-nav {
inset-inline-start: 0; /* This automatically becomes right in RTL */
}Best practices:
CTAs should go in high-attention zones:
Primary CTAs:
Secondary CTAs:
<!-- CTA positioning that works in both directions -->
<div class="hero">
<div class="hero-content">
<h1>Transform Your Business</h1>
<p>Our platform helps you grow faster...</p>
<div class="cta-group">
<button class="primary-cta">Get Started</button>
<button class="secondary-cta">Learn More</button>
</div>
</div>
<div class="hero-image">
<img src="product-screenshot.jpg" alt="Product dashboard" />
</div>
</div>.hero {
display: flex;
align-items: center;
gap: 3rem;
}
.hero-content {
flex: 1;
/* Text and CTAs automatically align to reading-start */
}
.cta-group {
display: flex;
gap: 1rem;
margin-block-start: 2rem;
/* Buttons flow in reading direction */
}The CTAs appear in the natural reading flow without any direction-specific code.
Forms benefit from understanding reading patterns:
/* Labels above inputs (universal pattern) */
.form-field {
display: flex;
flex-direction: column;
gap: 0.5rem;
margin-block-end: 1.5rem;
}
.form-label {
font-weight: 600;
/* Aligns to reading-start automatically */
}
/* Multi-column forms on desktop */
@media (min-width: 768px) {
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
}Form scanning pattern:
Avoid placing labels to the left/right of inputs in bidirectional designs. Top-aligned labels work universally and don't require mirroring logic.
Headings act as visual anchors. Make them scannable:
<article>
<h1>Main Article Title</h1>
<h2>First Major Section</h2>
<p>Content flows naturally in reading direction...</p>
<h3>Subsection Detail</h3>
<p>More specific information...</p>
<h2>Second Major Section</h2>
<p>Next major topic...</p>
</article>/* Headings at the reading-start edge */
h1, h2, h3, h4, h5, h6 {
text-align: start; /* Not left or right */
margin-block-start: 2rem;
margin-block-end: 1rem;
}
/* Visual hierarchy */
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }Lists create strong visual anchors on the reading-start edge:
<!-- Bulleted list -->
<ul>
<li>First key point</li>
<li>Second important item</li>
<li>Third consideration</li>
</ul>/* Bullets appear at reading-start */
ul {
padding-inline-start: 1.5rem;
}
/* Icons as bullets */
li::marker {
content: "✦ ";
color: #3b82f6;
}In RTL, bullets automatically appear on the right side, maintaining their position at the scanning edge.
Text wrapping around images should respect scanning patterns:
/* Image with text wrap */
.article-image {
width: 300px;
height: auto;
float: inline-start; /* Floats left in LTR, right in RTL */
margin-inline-end: 2rem;
margin-block-end: 1rem;
}This places images at the reading-start edge, where they'll be encountered first during scanning.


On pages with less text and more visual elements (landing pages, hero sections), users often follow a Z-pattern:
In RTL, this becomes a mirrored Z (or backwards Z):
Hero section optimized for Z-pattern:
<section class="hero">
<div class="hero-top">
<h1>Big Bold Headline</h1>
</div>
<div class="hero-middle">
<img src="hero-visual.jpg" alt="Product showcase" />
</div>
<div class="hero-bottom">
<button class="cta">Get Started Now</button>
</div>
</section>The user's eye naturally travels from headline → visual → CTA, regardless of direction.
Some elements should stay consistent across directions:
Centered content doesn't need to flip:
.centered-message {
text-align: center;
max-width: 600px;
margin-inline: auto;
}Grid layouts with symmetric patterns work the same in both directions:
.symmetric-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
justify-items: center; /* Centered items don't flip */
}Vertically stacked content doesn't need mirroring:
.vertical-stack {
display: flex;
flex-direction: column;
align-items: center; /* Centered alignment */
}Focus your mirroring efforts on horizontal layouts and elements at the reading-start/end edges. Centered and vertically-oriented content often needs no changes.
You don't need expensive equipment. Try this:
Use tools like:
Run these on both your LTR and RTL versions to compare patterns.
Test different placements:
Let data guide your decisions for your specific audience.
Reading direction shapes scanning: LTR users scan from left, RTL users from right
F-pattern mirrors in RTL: The pattern flips horizontally, not just the text
Start edge is prime real estate: Top-start corner gets the most attention in any direction
Logo placement: Mirror for better UX, keep consistent for brand reasons—test with your audience
Navigation flows naturally: Use logical properties and let CSS handle the direction
CTAs at hot zones: Place primary actions where eyes naturally land
Don't mirror everything: Centered content and symmetric layouts often need no changes
Test with real users: Eye-tracking studies and heatmaps reveal actual behavior
Think about scanning, not just reading: Page layout affects all users, not just those reading text
Start edge, top, first lines: These three areas deserve your best content in any direction
Discover how reading direction affects eye movement patterns and learn where to place key content for maximum impact in both LTR and RTL layouts.
Amira Hassan
Linguist and typographer specializing in Arabic script history and evolution.
When was the last time you read every word on a webpage? If you're like most people, the answer is: almost never.
We don't read websites—we scan them. Our eyes jump from point to point, seeking information landmarks and evaluating whether something is worth deeper attention. This scanning behavior follows predictable patterns that are deeply influenced by our native reading direction.
Understanding these patterns is crucial for designers. Place your call-to-action in the wrong spot, and it becomes invisible. Put your navigation in the expected place, and users find their way effortlessly.
One of the most famous findings in web usability is the F-pattern, first documented by the Nielsen Norman Group through eye-tracking studies of English-speaking users.
When reading left-to-right content, users' eyes typically move in an F-shaped pattern:

Hot zones (high attention areas):
Cold zones (low attention areas):
Design implications:
The F-pattern is strongest on text-heavy pages (articles, documentation, search results). Image-heavy pages show different patterns, often more distributed or Z-shaped.
Here's what many designers get wrong: they assume RTL users read in a backwards F-pattern. Actually, the pattern mirrors horizontally.
When Arabic or Hebrew speakers scan RTL content, they follow a mirrored F:


Hot zones in RTL:
Cold zones in RTL:
Design implications:
Don't just horizontally flip your LTR design and call it RTL. The mirrored F-pattern means most things flip, but some elements (like centered content or vertical lists) might stay the same.
Multiple studies have confirmed that reading direction influences scanning behavior:
Study 1: Ehmke & Wilson (2007)
Study 2: Nielsen Norman Group
Study 3: Barber & Kutas (2007)
"Reading direction is so deeply ingrained that it affects not just how we read text, but how we scan any visual information—including layouts with no text at all."
Regardless of direction, users pay the most attention to:
This means the top-start corner is your most valuable real estate in any language.
Option 1: Mirror the logo position
Pros:
Cons:
Option 2: Always top-left
Pros:
Cons:
| Industry | Recommendation | Reason |
|---|---|---|
| Global tech | Always top-left | Brand consistency, bilingual users |
| Local e-commerce | Mirror (top-start) | Better UX for native audience |
| Financial services | Always top-left | Regulatory, consistency expectations |
| Media/News | Mirror (top-start) | Optimize for local readers |
| Social platforms | Mirror (top-start) | Native feel matters more |
| SaaS/Enterprise | Always top-left | International teams, consistency |
My recommendation: Mirror the logo unless you have a strong brand consistency reason not to. User experience should usually win over cross-market consistency.
Test with your specific audience. Run a quick preference test showing both options. Let real users tell you what feels right for your brand and context.
Primary navigation should mirror:
/* LTR: Navigation on the left */
[dir="ltr"] .sidebar-nav {
inset-inline-start: 0;
}
/* RTL: Navigation on the right */
[dir="rtl"] .sidebar-nav {
inset-inline-start: 0; /* This automatically becomes right in RTL */
}Best practices:
CTAs should go in high-attention zones:
Primary CTAs:
Secondary CTAs:
<!-- CTA positioning that works in both directions -->
<div class="hero">
<div class="hero-content">
<h1>Transform Your Business</h1>
<p>Our platform helps you grow faster...</p>
<div class="cta-group">
<button class="primary-cta">Get Started</button>
<button class="secondary-cta">Learn More</button>
</div>
</div>
<div class="hero-image">
<img src="product-screenshot.jpg" alt="Product dashboard" />
</div>
</div>.hero {
display: flex;
align-items: center;
gap: 3rem;
}
.hero-content {
flex: 1;
/* Text and CTAs automatically align to reading-start */
}
.cta-group {
display: flex;
gap: 1rem;
margin-block-start: 2rem;
/* Buttons flow in reading direction */
}The CTAs appear in the natural reading flow without any direction-specific code.
Forms benefit from understanding reading patterns:
/* Labels above inputs (universal pattern) */
.form-field {
display: flex;
flex-direction: column;
gap: 0.5rem;
margin-block-end: 1.5rem;
}
.form-label {
font-weight: 600;
/* Aligns to reading-start automatically */
}
/* Multi-column forms on desktop */
@media (min-width: 768px) {
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
}Form scanning pattern:
Avoid placing labels to the left/right of inputs in bidirectional designs. Top-aligned labels work universally and don't require mirroring logic.
Headings act as visual anchors. Make them scannable:
<article>
<h1>Main Article Title</h1>
<h2>First Major Section</h2>
<p>Content flows naturally in reading direction...</p>
<h3>Subsection Detail</h3>
<p>More specific information...</p>
<h2>Second Major Section</h2>
<p>Next major topic...</p>
</article>/* Headings at the reading-start edge */
h1, h2, h3, h4, h5, h6 {
text-align: start; /* Not left or right */
margin-block-start: 2rem;
margin-block-end: 1rem;
}
/* Visual hierarchy */
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }Lists create strong visual anchors on the reading-start edge:
<!-- Bulleted list -->
<ul>
<li>First key point</li>
<li>Second important item</li>
<li>Third consideration</li>
</ul>/* Bullets appear at reading-start */
ul {
padding-inline-start: 1.5rem;
}
/* Icons as bullets */
li::marker {
content: "✦ ";
color: #3b82f6;
}In RTL, bullets automatically appear on the right side, maintaining their position at the scanning edge.
Text wrapping around images should respect scanning patterns:
/* Image with text wrap */
.article-image {
width: 300px;
height: auto;
float: inline-start; /* Floats left in LTR, right in RTL */
margin-inline-end: 2rem;
margin-block-end: 1rem;
}This places images at the reading-start edge, where they'll be encountered first during scanning.


On pages with less text and more visual elements (landing pages, hero sections), users often follow a Z-pattern:
In RTL, this becomes a mirrored Z (or backwards Z):
Hero section optimized for Z-pattern:
<section class="hero">
<div class="hero-top">
<h1>Big Bold Headline</h1>
</div>
<div class="hero-middle">
<img src="hero-visual.jpg" alt="Product showcase" />
</div>
<div class="hero-bottom">
<button class="cta">Get Started Now</button>
</div>
</section>The user's eye naturally travels from headline → visual → CTA, regardless of direction.
Some elements should stay consistent across directions:
Centered content doesn't need to flip:
.centered-message {
text-align: center;
max-width: 600px;
margin-inline: auto;
}Grid layouts with symmetric patterns work the same in both directions:
.symmetric-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
justify-items: center; /* Centered items don't flip */
}Vertically stacked content doesn't need mirroring:
.vertical-stack {
display: flex;
flex-direction: column;
align-items: center; /* Centered alignment */
}Focus your mirroring efforts on horizontal layouts and elements at the reading-start/end edges. Centered and vertically-oriented content often needs no changes.
You don't need expensive equipment. Try this:
Use tools like:
Run these on both your LTR and RTL versions to compare patterns.
Test different placements:
Let data guide your decisions for your specific audience.
Reading direction shapes scanning: LTR users scan from left, RTL users from right
F-pattern mirrors in RTL: The pattern flips horizontally, not just the text
Start edge is prime real estate: Top-start corner gets the most attention in any direction
Logo placement: Mirror for better UX, keep consistent for brand reasons—test with your audience
Navigation flows naturally: Use logical properties and let CSS handle the direction
CTAs at hot zones: Place primary actions where eyes naturally land
Don't mirror everything: Centered content and symmetric layouts often need no changes
Test with real users: Eye-tracking studies and heatmaps reveal actual behavior
Think about scanning, not just reading: Page layout affects all users, not just those reading text
Start edge, top, first lines: These three areas deserve your best content in any direction