Yazılarımız

OfisData

SEMANTİC HTML YAPISI KULLANMAK VE ERİŞİLEBİLİRLİĞİ ARTIRMAK

Web siteleri büyüdükçe içerik çoğalır, tasarım çeşitlenir ve ekipler arası iletişim zorlaşır. Tam da bu noktada Semantic HTML, sayfanın “neye benzediğini” değil “ne olduğunu” tarif ederek hem kullanıcılar hem de arama motorları için daha anlaşılır bir yapı oluşturur.

Semantik yapı, ekran okuyucuların içeriği doğru sırada okumasını kolaylaştırır, klavye ile gezinmeyi daha akıcı hâle getirir ve geliştirme ekibinin bakım maliyetini düşürür. Üstelik bu yaklaşım, SEO sinyallerini güçlendiren net bir doküman iskeleti sunar.

Bu yazıda, gerçekçi örneklerle semantik etiketleri doğru kullanmayı, başlık hiyerarşisini planlamayı ve erişilebilirliği artıran pratikleri adım adım ele alacağız. İsterseniz konuyu uygulamalı pekiştirmek için HTML eğitimi içeriğine de göz atabilirsiniz.

Semantik etiketleri doğru seçmek ve anlam kurmak

Semantik HTML; header, nav, main, article, section, footer gibi etiketlerle içeriğin amacını tarif eder. Bu sayede tarayıcılar, yardımcı teknolojiler ve arama motorları sayfanın bölümlerini daha net yorumlar. Örneğin “üst alan”, “gezinti”, “ana içerik”, “makale gövdesi” gibi parçalar belirginleşir.

Buradaki kritik nokta, semantiği yalnızca “etiket değiştirmek” olarak görmemektir. Semantik, içerik modelinizi yansıtır: Bir yazı mı, bir ürün detayı mı, bir duyuru mu? Her parçanın rolünü doğru tanımlamak; hem erişilebilirlik hem de sürdürülebilirlik açısından doğrudan kazanç sağlar.

Bir web sayfasında semantik etiketlerle düzenlenmiş başlık ve içerik hiyerarşisi

Görsel düzeni değil içerik rolünü belirlemek

Bir alanın üstte yer alması, her zaman <header> olması gerektiği anlamına gelmez. <header> bir sayfanın ya da bir bölümün girişini ifade eder; bir kart bile kendi içinde <header> barındırabilir. Benzer şekilde, her link grubu <nav> değildir; yalnızca sayfada gezinmeyi sağlayan ana bağlantı kümeleri için uygundur.

Article ve section ayrımını tutarlı kullanmak

<article> bağımsız olarak başka yerde de kullanılabilecek bir içeriği (blog yazısı, haber, yorum, ürün incelemesi) temsil eder. <section> ise daha çok konu bazlı bölümlendirme içindir. Bu ayrımı tutarlı yapmak, içerik tekrar kullanımı ve tasarım sistemleri açısından da işinizi kolaylaştırır.

Başlık hiyerarşisini planlamak ve akış kurmak

Başlıklar, erişilebilirliğin en hızlı kazanım alanlarından biridir. Ekran okuyucu kullanan biri, çoğu zaman sayfayı başlıklar üzerinden tarar; bu nedenle H1–H6 hiyerarşisi düzenli olmalıdır. Hiyerarşi, görsel büyüklükle değil anlamla ilgilidir.

Genel kural: Sayfada tek bir <h1> kullanın ve ana konuyu bununla tanımlayın. Alt konuları <h2> ile, onların alt kırılımlarını <h3> ile devam ettirin. Bir seviyeyi atlamak (H2’den H4’e geçmek gibi) teknik olarak mümkün olsa da, anlam bütünlüğünü zayıflatır.

Başlık atlamalarını azaltmak ve tutarlılık sağlamak

Başlık seviyelerini “tasarımda daha küçük dursun” diye seçmek yerine, CSS ile görsel düzenlemeyi tercih edin. Böylece içerik anlamını korur, tasarım ihtiyacı ayrı bir katmanda çözülür. Bu yaklaşım, farklı sayfa şablonlarında bile aynı içerik modelinin korunmasına yardımcı olur.

Landmark bölgeleriyle sayfayı bölmek ve yönlendirmek

Landmark bölgeleri; yardımcı teknolojilerin sayfada hızlı gezinmesini sağlayan işaretlerdir. Temel olarak <header>, <nav>, <main> ve <footer> gibi yapılarla sayfa “haritalanır”. Özellikle uzun içeriklerde, bu bölgeler kullanıcıya “ana içeriğe atla” gibi hızlı geçişler sunar.

Önemli bir pratik: Sayfada yalnızca bir tane <main> bulunmalı ve ana içerik burada yer almalıdır. Bu, hem erişilebilirlik araçlarının hem de test otomasyonlarının sayfayı daha doğru analiz etmesini sağlar.

Ana içeriğe atlama bağlantısı eklemek ve hızlandırmak

Uzun menüleri klavyeyle geçmek zorlayıcı olabilir. Bu yüzden sayfanın başına, odaklandığında görünen bir “ana içeriğe atla” bağlantısı eklemek iyi bir pratiktir. Görsel olarak minimal tutulabilir, ancak erişilebilirlik açısından etkisi büyüktür.

<a href="#icerik" class="skip-link">Ana içeriğe atla</a>

<header>
  <nav>...</nav>
</header>

<main id="icerik">
  <h1>Semantic HTML yapısı kullanmak</h1>
  ...
</main>

Form alanlarını doğru etiketlemek ve anlaşılır kılmak

Formlar, erişilebilirliğin en sık hataya düştüğü alanlardan biridir. Placeholder metni, label yerine geçmez; çünkü yazı girildiğinde kaybolur ve yardımcı teknoloji açısından kalıcı bir “isim” sağlamaz. Her giriş alanının açık bir etiketi olmalı, gerekirse açıklama metinleri aria-describedby ile ilişkilendirilmelidir.

Ayrıca hata mesajları, sadece renk değişimiyle değil metinle de desteklenmelidir. Kullanıcı hatayı görmesin diye değil; farklı kullanım senaryolarında herkesin aynı bilgiyi alabilmesi için bu önemlidir.

Label ve aria-describedby ile bağ kurmak

Basit bir örnekle, şifre alanının kurallarını kullanıcıya net anlatmak ve ekran okuyucunun bu bilgiyi okumasını sağlamak mümkündür. Aşağıdaki örnekte, alan adı ve açıklama metni birbirine bağlanır; bu da hem kullanılabilirliği hem de form tamamlama oranlarını iyileştirebilir.

<label for="password">Şifre</label>
<input id="password" name="password" type="password" aria-describedby="password-help" />
<p id="password-help">En az 8 karakter, bir sayı ve bir büyük harf içermeli.</p>

SEO ve erişilebilirliği birlikte düşünmek ve güçlendirmek

Semantik yapı, yalnızca erişilebilirlik için değil, içerik keşfi ve indeksleme için de değer üretir. Arama motorları, başlık hiyerarşisi ve anlamlı bölümler üzerinden sayfanın konusunu daha net çıkarır. Bu, özellikle bilgi yoğun içeriklerde sayfanın “ne hakkında olduğunu” daha hızlı anlamaya yardımcı olur.

Burada ince bir denge vardır: SEO için başlıkları anahtar kelime doldurmak amacıyla şişirmek yerine, kullanıcı niyetini karşılayan açıklıkta kurgulamak gerekir. Doğal bir dil, tutarlı bir yapı ve iyi bağlantılanmış içerik; uzun vadede daha sürdürülebilir sonuçlar verir.

İç linklerle bağlamı güçlendirmek ve gezdirmek

İç bağlantılar, hem kullanıcıların ilgili konulara geçmesini sağlar hem de site içi bilgi mimarisini güçlendirir. Bağlantı metnini “buraya tıklayın” gibi belirsiz ifadeler yerine, içeriği tarif eden net metinlerle yazmak erişilebilirliği artırır. Örneğin, eğitim içeriğine giderken “HTML eğitimi” gibi açıklayıcı bir metin tercih etmek daha doğrudur.


Denetim adımlarını rutinleştirmek ve hataları azaltmak

Semantik HTML’e geçiş, tek seferlik bir refaktör değildir; bir standart hâline gelmelidir. Bunu kolaylaştıran en iyi yaklaşım, kontrol listelerini geliştirme akışına dahil etmektir. Örneğin her yeni sayfada başlık hiyerarşisini, landmark bölgelerini, form etiketlerini ve link metinlerini gözden geçirmek, hataları erken yakalamanızı sağlar.

Takımlar için pratik bir yol: Tasarım sistemi bileşenlerine semantik varsayımlar eklemek. Bir “Kart” bileşeni, içerik türüne göre <article> veya <section> üretmeyi varsayabilir; “Liste” bileşeni <ul> ile gelmeli; “Buton” bir linkse <a>, aksiyonsa <button> olmalı. Bu, standartları otomatikleştirir.

Kontrol listesini ekip içinde paylaşmak ve benimsetmek

Aşağıdaki kısa liste, günlük iş akışında hızlı denetim için kullanılabilir. Kriterleri netleştirmek, kod incelemelerinde kişisel yorum farkını azaltır ve ekip içi dil birliğini güçlendirir.

  • Sayfada tek bir H1 kullanmak ve ana konuyu net yazmak
  • H2 ve H3 seviyelerini atlamadan ilerlemek ve bölümleri anlamlı kurmak
  • Tek bir main kullanmak ve ana içeriği burada toplamak
  • Form alanlarını label ile bağlamak ve açıklamaları ilişkilendirmek
  • Link metinlerini açıklayıcı seçmek ve belirsiz ifadeleri azaltmak
Ekran okuyucu ve klavye ile gezinirken net başlık yapısı sunan arayüz örneği

Özetle, Semantic HTML yalnızca bir “etiket seçimi” değildir; içerik stratejisi, tasarım sistemi ve geliştirme kalitesinin kesişiminde yer alır. Doğru yapı; erişilebilirliği artırır, bakımı kolaylaştırır ve içerik performansını daha öngörülebilir hâle getirir. Küçük adımlarla başlayıp standartları rutinleştirdiğinizde, etkisini kısa sürede görürsünüz.

 Vimaj