HTML Nitelikleri (Attributes) Nasıl Kullanılır: Kapsamlı Bir Rehber
HTML, web sayfalarının yapı taşını oluşturan bir işaretleme dilidir. Bir web sayfasındaki başlıkları, paragrafları, resimleri, bağlantıları ve diğer tüm içerikleri tanımlamak için HTML etiketlerini kullanırız. Ancak bu etiketler, çoğu zaman tek başlarına yeterli değildir. İşte bu noktada HTML nitelikleri (attributes) devreye girer. Nitelikler, HTML öğelerine ek bilgi sağlamak, davranışlarını değiştirmek veya görünümlerini özelleştirmek için kullanılır. Bu makale, HTML niteliklerinin ne olduğunu, neden önemli olduklarını ve web geliştirme projelerinizde nasıl etkin bir şekilde kullanılabileceklerini kapsamlı bir şekilde ele alacaktır.
Giriş: HTML Nitelikleri Nedir ve Neden Önemlidir?
HTML nitelikleri, bir HTML etiketinin başlangıç etiketinde yer alan ad-değer çiftleridir ve öğenin belirli bir özelliğini tanımlar. Örneğin, bir resim etiketinin () kaynağını (src) veya bir bağlantı etiketinin () hedefini (href) belirtmek için nitelikler kullanılır. Genel sözdizimi şöyledir: . Nitelik adları genellikle küçük harfle yazılır ve değerler çift tırnak (“) veya tek tırnak (‘) içine alınır.
Nitelikler, HTML belgelerine sadece yapısal bilgi eklemekle kalmaz, aynı zamanda:
* İşlevsellik Sağlar: Bağlantıların nereye gideceğini, form alanlarının türünü belirler.
* Görsel Sunumu Etkiler: CSS ile birlikte kullanılarak öğelerin stilini şekillendirir.
* Erişilebilirliği Artırır: Ekran okuyucular gibi yardımcı teknolojilere anlamlı bilgiler sunar.
* JavaScript Etkileşimini Mümkün Kılar: JavaScript ile öğeleri seçmek ve manipüle etmek için hedefler sağlar.
* SEO’ya Katkıda Bulunur: Arama motorlarının içeriği daha iyi anlamasına yardımcı olur.
Bu makale boyunca, en yaygın kullanılan niteliklerden özel amaçlı niteliklere, erişilebilirlik niteliklerinden en iyi uygulama yöntemlerine kadar birçok konuyu detaylı örneklerle inceleyeceğiz.
Temel HTML Nitelikleri ve Kullanım Alanları
Web geliştiricilerin günlük olarak en sık kullandığı ve bilmesi gereken temel HTML nitelikleri şunlardır:
id Nitelikleri
id niteliği, bir HTML belgesindeki herhangi bir öğeye benzersiz bir tanımlayıcı atamak için kullanılır. Bir sayfada aynı id değerine sahip birden fazla öğe bulunmamalıdır.
* Kullanım Alanları:
* CSS Hedefleme: Belirli bir öğeye özel stil uygulamak için kullanılır.
* JavaScript Manipülasyonu: JavaScript ile belirli bir öğeyi seçmek ve üzerinde işlem yapmak için en yaygın yöntemdir (document.getElementById()).
* Bağlantı Hedefleri (Anchor Links): Sayfa içi navigasyon için kullanılır; bir bağlantının href değeri #id_adı şeklinde ayarlanarak belirli bir öğeye atlama sağlanır.
* Kurallar:
* Değer benzersiz olmalıdır.
* Harf ile başlamalıdır.
* Boşluk veya özel karakterler (tire ve alt çizgi hariç) içermemelidir.
* Örnek:
Bu, ana içerik bloğudur.
Ana İçeriğe Git
class Nitelikleri
class niteliği, birden fazla HTML öğesini gruplamak ve onlara aynı stil veya davranış kurallarını uygulamak için kullanılır. Bir öğeye birden fazla sınıf atanabilir ve bu sınıflar boşluklarla ayrılır.
* Kullanım Alanları:
* CSS Stil Uygulaması: Birden fazla öğeye aynı CSS kurallarını uygulamak için idealdir.
* JavaScript Seçimi: JavaScript ile belirli bir sınıfa sahip tüm öğeleri seçmek (document.getElementsByClassName() veya document.querySelectorAll()) ve manipüle etmek için kullanılır.
* Kurallar:
* Bir öğeye birden fazla sınıf atanabilir.
* Sınıf adları harf ile başlamalıdır, ancak sayı, tire ve alt çizgi de içerebilir.
* Örnek:
Bu bir vurgulu paragraftır.
Bu da vurgulu bir kutu.
src Nitelikleri
src (source) niteliği, harici bir kaynağın URL’sini belirtmek için kullanılır. Genellikle resimler, videolar, ses dosyaları, komut dosyaları ve iframe’ler için kullanılır.
* Kullanım Alanları:
* : Resim dosyasının yolunu belirtir.
* : Harici JavaScript dosyasının yolunu belirtir.
* , : Ses veya video dosyasının yolunu belirtir.
* : Başka bir web sayfasının URL'sini belirtir.
* Örnek:
href Nitelikleri
href (hyperlink reference) niteliği, bir köprünün hedef URL'sini veya bir harici kaynağın (örneğin bir CSS dosyası) konumunu belirtir.
* Kullanım Alanları:
* : Tıklandığında kullanıcıyı başka bir sayfaya veya sayfa içi bir konuma yönlendiren bağlantının hedefini belirtir.
* : Harici bir stil sayfasının veya diğer ilişkili belgelerin konumunu belirtir.
* Örnek:
Örnek Web Sitesi
Hakkımızda
Üçüncü Bölüme Git
alt Nitelikleri
alt (alternative text) niteliği, bir resim yüklenemediğinde veya ekran okuyucular tarafından kullanıldığında resmin yerine geçecek metni sağlar. Erişilebilirlik ve SEO için kritik öneme sahiptir.
* Kullanım Alanları:
* : Resmin içeriğini veya amacını açıklayan kısa bir metin sağlar.
* Önemi:
* Görme engelli kullanıcılar için resmin ne hakkında olduğunu açıklar.
* Resim yüklenemediğinde kullanıcıya bilgi verir.
* Arama motorlarının resim içeriğini anlamasına yardımcı olur, bu da SEO'yu iyileştirir.
* Örnek:

title Nitelikleri
title niteliği, bir öğe hakkında ek bilgi sağlamak için kullanılır. Fare imleci öğenin üzerine geldiğinde bir ipucu (tooltip) olarak gösterilir.
* Kullanım Alanları:
* Hemen hemen tüm HTML öğeleriyle kullanılabilir.
* Kullanıcıya ek bağlamsal bilgi sunmak için.
* Örnek:
Bu bir paragraftır.
Ziyaret Et
style Nitelikleri
style niteliği, belirli bir HTML öğesine doğrudan satır içi CSS stilleri uygulamak için kullanılır. Genellikle küçük, özel durumlar veya hızlı testler için kullanılır, ancak büyük projelerde harici CSS dosyaları tercih edilir.
* Kullanım Alanları:
* Tek bir öğeye anında stil uygulamak.
* Dezavantajları:
* Kodu okumayı ve bakımı zorlaştırır.
* Stil tekrarına yol açar.
* CSS önceliği nedeniyle diğer stil kurallarını geçersiz kılabilir.
* Örnek:
Bu metin satır içi stil ile biçimlendirilmiştir.
lang Nitelikleri
lang niteliği, bir öğenin veya tüm belgenin içeriğinin dilini belirtmek için kullanılır. Genellikle etiketinde tüm sayfanın dilini belirtmek için kullanılır.
* Kullanım Alanları:
* : Sayfanın ana dilini belirtir (örn. lang="tr").
* Belirli bir öğe: Eğer bir paragraf veya bölüm farklı bir dildeyse, o öğeye özel olarak lang niteliği atanabilir.
* Önemi:
* Arama motorlarının içeriğin dilini anlamasına yardımcı olur.
* Ekran okuyucuların doğru telaffuz ve aksanla metni okumasını sağlar.
* Tarayıcıların dil ile ilgili özelliklerini (örn. yazım denetimi) optimize etmesine yardımcı olur.
* Örnek:
Türkçe Sayfa
Bu bir Türkçe paragraftır.
Hello World! Bu ise İngilizce bir kelime öbeğidir.
Global Nitelikler
Global nitelikler, neredeyse tüm HTML etiketlerinde kullanılabilen niteliklerdir. Bu nitelikler, öğelerin temel davranışlarını ve erişilebilirliğini etkileyen genel özellikler sunar.
data-* Nitelikleri
data-* nitelikleri, özel verileri HTML öğelerinde depolamak için kullanılır. Bu veriler genellikle JavaScript tarafından okunur ve manipüle edilir, böylece HTML ve JavaScript arasında özel, gizli veri alışverişi sağlanır.
* Kullanım Alanları:
* Kullanıcı arayüzü bileşenlerinin durumunu depolamak (örn. bir modal pencerenin açık/kapalı durumu).
* API'lerden gelen verileri doğrudan HTML'e gömmek.
* JavaScript ile etkileşimli öğeler oluşturmak.
* Kurallar:
* Nitelik adı data- ile başlamalıdır, ardından küçük harfler, sayılar, tireler ve alt çizgilerle devam edebilir.
* Örnek:
tabindex Nitelikleri
tabindex niteliği, bir öğenin klavye navigasyonu (Tab tuşu) sırasındaki konumunu belirler. Erişilebilirlik için çok önemlidir, çünkü kullanıcıların klavye ile etkileşimli öğeler arasında gezinmesini sağlar.
* Değerler:
* Pozitif bir sayı (örn. tabindex="1"): Öğenin sekme sırasını belirler. Daha küçük sayılar daha önce gelir.
* tabindex="0": Öğeyi doğal sekme sırasına dahil eder ve belge akışına göre sıralar.
* tabindex="-1": Öğeyi sekme sırasından çıkarır, ancak JavaScript ile odaklanılabilir olmasını sağlar.
* Örnek:
Birinci Bağlantı
Bu div'e klavye ile doğrudan ulaşılamaz, ancak JS ile odaklanabilir.
contenteditable Nitelikleri
contenteditable niteliği, bir öğenin içeriğinin kullanıcı tarafından doğrudan web sayfasında düzenlenebilir olup olmadığını belirtir.
* Kullanım Alanları:
* Basit WYSIWYG (What You See Is What You Get) editörleri oluşturmak.
* Kullanıcıların belirli metin alanlarını anında düzenlemesine izin vermek.
* Değerler: true (veya boş), false.
* Örnek:
Bu metni düzenleyebilirsiniz. Deneyin!
Bu metin düzenlenemez.
hidden Nitelikleri
hidden niteliği, bir öğeyi tamamen gizlemek için kullanılır. Bu niteliğe sahip öğeler görsel olarak görünmezdir ve ekran okuyucular tarafından da genellikle yok sayılır.
* Kullanım Alanları:
* Geçici olarak bir öğeyi sayfadan kaldırmak.
* JavaScript ile dinamik olarak gösterilip gizlenecek öğeler.
* Örnek:
Bu paragraf normalde görünür.
Bu paragraf gizlidir ve görünmez.
dir Nitelikleri
dir niteliği, bir öğenin veya tüm belgenin metin yönünü belirtir. Özellikle sağdan sola yazılan diller (Arapça, İbranice vb.) için önemlidir.
* Değerler:
* ltr (left-to-right): Soldan sağa (varsayılan).
* rtl (right-to-left): Sağdan sola.
* auto: Tarayıcının içeriğe göre otomatik olarak yönü belirlemesini sağlar.
* Örnek:
العربية
مرحباً بالعالم!
This is a left-to-right paragraph.
Form Nitelikleri
HTML formları, kullanıcı girdisi almak için hayati öneme sahiptir. Form öğeleri, davranışlarını ve etkileşimlerini kontrol etmek için zengin bir nitelik setine sahiptir.
ve Diğer Form Öğeleri İçin Nitelikler
* type: Giriş alanının türünü belirtir (örn. text, password, number, email, checkbox, radio, file, submit).
* name: Form verileri sunucuya gönderildiğinde, bu nitelik alanın adını temsil eder. Her form öğesi için benzersiz olmalıdır (aynı grup içindeki radyo düğmeleri hariç).
Erkek
Kadın
* value: Bir giriş alanının varsayılan değerini veya bir düğmenin gönderilecek değerini belirtir.
* placeholder: Giriş alanı boşken görünen, kullanıcıya ne girmesi gerektiğini söyleyen ipucu metni.
* required: Bu nitelik, form gönderilmeden önce alanın doldurulması gerektiğini belirtir. Boole niteliğidir (değer gerekmez, sadece varlığı yeterlidir).
* disabled: Bu nitelik, bir form öğesini etkisizleştirir, böylece kullanıcı onunla etkileşim kuramaz ve değeri form gönderimine dahil edilmez.
* readonly: Bu nitelik, bir giriş alanının değerinin değiştirilemeyeceğini belirtir, ancak değeri form gönderimine dahil edilir.
* min, max, step: Sayısal (number, range) veya tarih/saat (date, time) girişleri için minimum, maksimum ve adım değerlerini belirler.
* checked: radio ve checkbox türündeki giriş alanlarının varsayılan olarak işaretli olmasını sağlar.
Bültene abone ol
* selected: etiketi için kullanılır ve bir açılır listede varsayılan olarak seçili öğeyi belirtir.
* autocomplete: Tarayıcının otomatik tamamlama özelliğini kontrol eder. on veya off olarak ayarlanabilir, veya belirli bir veri türü için ipucu sağlayabilir (örn. name, email).
Bu nitelikler, kullanıcı dostu ve işlevsel formlar oluşturmak için temel araçlardır.
Erişilebilirlik (ARIA) Nitelikleri
WAI-ARIA (Web Accessibility Initiative - Accessible Rich Internet Applications) nitelikleri, özellikle dinamik içerik ve gelişmiş kullanıcı arayüzü bileşenleri için HTML'in erişilebilirliğini artırmak amacıyla tasarlanmıştır. Bu nitelikler, ekran okuyucular gibi yardımcı teknolojilere, bir öğenin rolü, durumu ve özellikleri hakkında ek anlamsal bilgi sağlar.
* Neden Önemli?
* HTML'de doğal olarak anlamsal karşılığı olmayan karmaşık UI bileşenleri (örn. sekmeli arayüzler, açılır menüler, ilerleme çubukları) için anlam katarlar.
* Görme engelli veya motor engelli kullanıcıların web sayfalarıyla daha etkili bir şekilde etkileşim kurmasını sağlarlar.
* Yaygın ARIA Nitelikleri:
* role: Bir öğenin anlamsal rolünü tanımlar (örn. role="button", role="navigation", role="dialog").
X
* aria-label: Bir öğe için görünür bir etiket olmadığında, ekran okuyuculara okunacak açıklayıcı bir metin sağlar.
* aria-labelledby: Bir öğenin etiketini başka bir öğenin id'sine bağlar.
Modal Başlığı
* aria-describedby: Bir öğe hakkında ek açıklama sağlayan başka bir öğenin id'sine bağlar.
E-posta adresiniz kimseyle paylaşılmayacaktır.
* aria-expanded: Bir öğenin (örn. bir menü veya akordeon başlığı) genişletilmiş mi yoksa daraltılmış mı olduğunu belirtir (true/false).
* aria-hidden: Bir öğenin yardımcı teknolojiler tarafından yok sayılması gerektiğini belirtir (true/false). Genellikle sadece dekoratif öğeler veya ekranda zaten görünen bilgilerin tekrarı için kullanılır.
* aria-live: Dinamik olarak güncellenen içerik alanlarını işaretler, böylece ekran okuyucular bu değişiklikleri otomatik olarak duyurabilir (polite, assertive).
ARIA nitelikleri güçlü araçlardır ancak dikkatli kullanılmalıdır. "No ARIA is better than bad ARIA" (Kötü ARIA'dan hiç ARIA olmaması daha iyidir) prensibi unutulmamalıdır. Mümkün olduğunca anlamsal HTML etiketleri (,