• Home
    • Contact

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2

    Table of Contents

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - b05b

    Merhaba arkadaşlarım! 👋

    Bu yazı, bir önceki yazıda belirttiğim uzun soluklu serimizin ikinci bölümüdür. İlk bölümde

  • internetin nasıl çalıştığını
  • bir web sayfası açılmadan önce arka planda neler olduğunu
  • IP adresi ve DNS’i konuşmuştuk
  • DNS sorgularından denizaltı kablolarına kadar uzanan bu dijital yolculukta, en son sunucudan tarayıcımıza gelen üç önemli dosya türünden çok kısa bahsettik: HTML, CSS ve JavaScript

    Şimdi sıra geldi bu üçlüden ilkine: HTML’e!

    🚧 Bu yazıda HTML’in ne olduğunu, nasıl yazıldığını, semantik yapıların ne işe yaradığını ve sıfırdan küçük bir HTML sayfası kurmayı, bunu yaparken de webi ilgilendiren regülasyonları ve etik kod yazımını adım adım öğreneceğiz. Bir önceki yazıda belirtmiştim zaten! :)

    Google’ın resmi HTML stil rehberinden (https://google.github.io/styleguide/htmlcssguide.html) ve kendi geliştirici dökümantasyonlarından faydalanarak ilerleyeceğiz ki eliniz hem kolayca alışır hem de bu süreçte sürekli yardım alabileceğiniz kaynakların olduğunu bilin.

    Hazırsanız başlayalım! 🎯

    Neden HTML Doğru Kullanılmalı?

    Arkadaşlarım, iyi yazılmış bir HTML demek, bazı engelleri olan insanların da yazdıklarınızı okuyabilmesi, dinleyebilmesi veya bu kaynağa erişebilmesi demek. Buna örnek olarak mesela iyi yazılmış websitelerinin avantajları ve farkı şöyle oluyor:

  • Engelli bireylerin ekran okuyucularla sayfayı anlamasını/dinlemelerini sağlar
  • Arama motorlarına “Benim bu sayfam bir makaledir, başlığı şudur” diyebilirsiniz ve SEO & marketing için işlerinizi kolaylaştırır
  • CSS ve JavaScript’in işini kolaylaştırırsınız HTML ile
  • Ve evet, hukuki olarak da sizi birçok erişilebilirlik ihlalinden korur (örneğin: Avrupa’da Web Erişilebilirlik Direktifi’ne uygunluk veya ABD’de bulunan ADA kanunundan da- bunlara daha detaylı değineceğiz sabredin canlar).
  • 🧠 Semantik HTML kullanmak bir kibarlık yapmak değil, bir sorumluluk hatta yükümlülüktür ve bunun için bütün adımları sizin için erişiliebilir kılmaya çalışacağım.

    🧩 HTML Öğeleri Nedir?

    HTML belgeleri, aslında bir düğüm ağacı gibidir. Yani her şey birbirine bağlı ve her öğe, başka bir öğeyi içine alabilir ya da yanında durabilir. Dallar ve yapraklar gibi sürekli birbirleirnden filizleniyorlar🍃

    Bu yapının temelini ise “element” yani öğe dediğimiz yapılar oluşturur.

    Peki bu element dediğimiz şey tam olarak nedir? Mesela şöyle düşünün:

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - cc4b

    Element, opening tag yani açma etiketimiz, içeriğimizin kendisi, kapatma etiketimiz yani closing tagin tamamını kapsayan koddur aslında.

    Burada anladığınız üzere:

  • <h1> bizim açılış etiketimizdir
  • Bu ilk Legal — Tech atölyemiz ifadesi içeriğimizdir
  • </h1> ise kapanış etiketimizdir
  • Tüm bu parçaların birleşimine HTML elementi diyoruz. İçerik bu etiketlerin arasında durur ve böylece tarayıcıya, “bak bu içerik birinci seviye bir başlıktır” demiş oluruz.

    Bu arada her elementimiz içerik taşımak ya da yazı içermek zorunda da değildir. içeriğimiz boş olabilir, misal bir örnek göstereyim:

    <img src="foto.jpg" alt="Elif'in profil fotoğrafı">
    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - ba83

    Bu bir görsel öğesi. Kapanış etiketi yok, çünkü içinde gösterilecek metin gibi bir içerik yok. Ama bakın iki önemli bilgi var:

  • src yani görselin nerede olduğunu belirtir (source kavramından gelir)
  • ve alt yani erişilebilirlik açısından görselin neyi temsil ettiğini söyleyen açıklamadır
  • İşte bu gibi detaylara öznitelik (attribute) diyoruz. Ve her HTML öğesi, kendi görevini yerine getirebilmesi için farklı öznitelikler alabilir.

    💡 Bilmemiz gereken bir diğer önemli nokta ise şudur: Kapanış etiketi, açılış etiketiyle aynı sembolle başlar (<) ama farkı, başına bir slash (eğik çizgi) (/) almasıdır. Yani <p> bir paragraf başlatır, </p> ise onu sonlandırır.

    Yukarıdaki örneği gördünüz ve artık biliyorsunuz ki elementler ve etiketler tam olarak aynı şey değildir, buna rağmen birçok kişi bu terimleri birbirinin yerine kullanyor :)

    Etiket adı, parantez içindeki içerik olur genelde, etiket parantezleri içerir yani o kodun tamamıdır.

    Şimdi buraya kadar sorun yok, devam ediyorum.

    📦 HTML Öğelerinde Yuvalama (Nesting) ve Etiketlerin Sıralaması Nasıl oluyor?

    Şimdi bir örnek üzerinden ilerleyelim ki daha rahat anlaşılabileyim.

    <p>This paragraph has some
      <strong><em>strongly emphasized</em></strong>
      content.</p>

    Bu ne demek oluyor? Burada bir paragraf öğesi var (<p>) biz ne zaman websitemizde bir paragraf ya da yazı, ieçrik, şiir, makale yazacak olsak kullanacağımız öge <p> olacak. Haliyle bunu kapatırken de </p> bu şekilde kapatacağız.

    Fakat burada belirtmek istediğim başka bir şey var. Bu paragrafın içinde başka iki öğe yuvalanmış (nested) durumda: <strong> ve <em>. Yani HTML elementleri birbirinin içinde kullanılabiliyor gördünüz mü? Ama dikkat! Bunu yaparken çok önemli bir kurala uymamız gerekiyor, her kodu diğer kodların içinde kullanamıyoruz.

    👉 Açtığın etiketi, sırasına göre tersinden kapatmalısın.
    Yani önce açtığın en son etiketi, önce kapatman gerekiyor. Bu, bizim “last in, first out” dediğimiz bir mantık.

    Yukarıdaki örnekte önce <strong> etiketi açılmış ama onun içine <em> girmiş. O zaman önce <em> kapanır, sonra <strong> kapanır. Sıra şu şekilde ilerler yani:

  • Açılış: <p> → <strong> → <em>
  • Kapanış: </em> → </strong> → </p>
  • Eğer bu sıraya uymazsak, kullandığımız tarayıcılar içeriği yanlış yorumlayacaklardır. 💡 Tarayıcılar bazen bunu “tahmin eder” ve doğru şekilde gösterbeilir, ama biz web geliştiriciler ve legal engineerler olarak bu duruma kesinlikle güvenmemeliyiz.

    Ha bu arada bir de not düşmek isterim! Sen bir sayfaya girdiğinde, <p> veya <ul> gibi etiketleri GÖRMEZSİN. Çünkü bu etiketler ekrana bir şey yazdırmak için değil, tarayıcının neyi nasıl göstermesi gerektiğini anlaması içindir :) HTML, yani “HyperText Markup Language” zaten bu işi yapıyor, sayfanın yapısını etiketlerle işaretliyor, bundan dolayı kendisi bir işaretleme dilidir! :)

    Bir başka örnek daha verelim:

    <ul>
      <li>Blendan Smooth
      <li>Hoover Sukhdeep
      <li>Toasty McToastface
    </ul>

    Burada liste öğeleri <li> etiketiyle yazılmış ama hiçbiri kapatılmamış (</li> yok yani ). Buna rağmen tarayıcı bunu anlıyor ve her satırı bir liste öğesi olarak işlemeye devam ediyor. Ama buraya dikkat! 👇

    💣 Bu işe yarasa da iyi bir seçenek değil. Kodun okunabilirliği azalır. Başka bir geliştirici gelip bu kodu gördüğünde, burada kapanış eksik mi bırakılmış, yoksa bilinçli mi bırakılmış neden bırakılmış diye düşünmek zorunda kalır.

    💡 Kapanış etiketleri, kodun netliğini sağlar yani.

    Şimdiiiii!!

    🧱 Her HTML belgesinde olması gereken temel yapıları görelim

    Bir HTML belgesi oluştururken bazı şeyler vardır ki olmazsa olmaz, Solidity programlama dili ile akıllı sözleşme kodlarken de bu böyledir, bazı başlangıçlar olmazsa olmazdır. Solidity’de bu

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;

    HTML ile yazılan websitelerini incelediğinizde, hukuki veya tekink olarak dikkaitnizi çeken şey şudur:

    Bu yüzden her HTML dosyası şu temel yapıyla başlamalıdır:
    <!DOCTYPE html>
    Bu, bir HTML etiketi değildir. Bu bir bildirimdir.

    Tarayıcıya diyoruz ki: Hey browser, bu dosya HTML5’e göre yazıldı. Lütfen ona göre yorumla!

    Eğer bu satırı yazmazsak ne olur? Tarayıcılar quirks mode denilen bir moda geçer. Yani kafayı karıştırırlar, çalıştırmama olasılığı yükselir.

    2️⃣ <html> — Belgemizin kök etiketi

    Her şeyin başladığı yerdir. Tüm HTML içeriği, <html> etiketiyle başlar ve </html> etiketiyle biter. Bunun içine de iki ana bölüm girer:

  • <head> → sayfanın ayarları, başlığı, stil dosyaları, scriptler vb.
  • <body> → sayfanın tarayıcıda görünen kısmı, en önemli kısım diyebilirim
  • 3️⃣ lang Özniteliği — Sayfanın Hangi Dilde Olduğunu Söyleriz

    şimdi HTML etiketimize bir attribute ekliyoruz,

    <html lang="tr">

    Bu satırla ne yaptık? Dedik ki:

    Bu belge Türkçedir, yani içinde kullanılan dil Türkçe’dir. Buna göre yorumla, oku, işle

    Ama bu sadece teknik bir detay değil. Bu küçük öznitelik, hukuki anlamda büyük sonuçlar doğuruyor. Şöyle düşünün arkadaşlar:

    Bir sayfanın dilini doğru belirtmemek, bazı kullanıcıları doğrudan dışlamak anlamına gelebilir,

    👩‍⚖️ Peki neden bu kadar önemli?

    ✅ Erişilebilirlik Yasaları (Accessibility & Hukuk)

    Amerika’da ADA (Americans with Disabilities Act), Avrupa’da WCAG standartları (Web Content Accessibility Guidelines) ve eIDAS, Türkiye’de ise Erişilebilirlik Mevzuatı ve Kamu Bilişim Standartları gibi çerçeveler, dijital içeriklerin herkes için erişilebilir olması gerektiğini açıkça belirtir.

    Eğer bir sayfanın dili düzgün tanımlanmazsa, ekran okuyucu kullanan bireyler (örneğin görme engelliler), içeriği anlamakta zorlanırlar. Çünkü ekran okuyucu, hangi dilde okuması gerektiğini bilemeyecektir

    ➡️ Sonuç? Bu bir erişim engeli olur. ➡️ Ve bu da, hem etik hem de hukuki bir sorumluluğa dönüşür.

    ✅ SEO & Tüketici Koruma

    Dil bilgisi aynı zamanda arama motorlarının içeriği nasıl kategorize edeceğini belirler.

    Yanlış dil tanımı, yanıltıcı reklamcılık ya da bilgilendirme yükümlülüğünün ihlali gibi durumlarla ilişkilendirilebilir. Özellikle Avrupa’daki Tüketici Hakları Yönergeleri, dijital arayüzlerde şeffaflık ve doğru bilgilendirme yükümlülüğünü zorunlu kılar.
    Eğer İngilizce konuşamayan bir kullanıcıya içerik İngilizce sunuluyorsa, ama aslında sayfa Türkçe olarak tasarlanmışsa, bu durum yanıltıcı veya eksik bilgilendirme olarak değerlendirilebilir.

    ✅ Çeviri Sistemleri & KVKK

    Google Translate gibi sistemler, sayfanın lang özniteliğine göre çeviri önerisi sunar. Eğer bu tanım eksikse, kullanıcı çeviri seçeneği göremez. Bu da özellikle kamu kurumları, bankalar, sağlık sistemleri veya çok dilli hizmet veren web siteleri için riskli bir alan oluşturur.

    Bir birey içerikten faydalanamıyor ve bu nedenle hizmet alamıyorsa, bu durum kişisel veri erişim hakkı, açık rıza veya bilgilendirme yükümlülüğü kapsamında KVKK’ya aykırılık teşkil edebilir.

    Peki başka dillerde içerik varsa? O zaman ilgili metin bloğuna özel lang özniteliği eklenir. Örneğin:

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 2d95
    <p>Kitabın orijinal adı: <span lang="fr">Le Petit Prince</span></p>

    Bu örnekte sadece Le Petit Prince kısmının Fransızca olduğu belirtiliyor. Çünkü bir belgedeki her şey aynı dilde olmak zorunda değil tabiki :)

    Ama sizin bunu belirtmeniz gerekiyor dediğim gibi!

    💡 Ekstra Bir Bilgi: “lang" Özniteliği CSS’te Seçici Olarak da Kullanılabilir

    Yani bu bilgi sadece erişilebilirlik için değil, stil uygulamak için de işe yarar. Mesela sadece Fransızca olan bölümleri farklı renkte göstermek istersek:

    :lang(fr) {
      color: royalblue;
      font-style: italic;
    }

    Bu da bir yöntem, ama acele etmeyin bunu 5. ve 6. yazıda ele aldık :)

    🔍 <head> Etiketimiz: Sayfanın Kimliği ve Hukuki Kartviziti diyebilir miyiz?

    HTML belgesinin başı olan <head> bölümü, dışarıdan pek görünmese de içerik kadar önemlidir. Burası, sayfanızın karakterini, dilini, yasal kimliğini, hatta arama motorları ve ekran okuyucular gözünde kim olduğunu belirleyen yerdir. Nasıl ki bizlerin kimlik belgesinde adımız, doğum yerimiz, uyruk bilgilerimiz varsa, HTML sayfanızın da aynen böyle bir dijital kimliği var. Ve bu kimlik, <head> etiketinin içinde tanımlanır.

    İşte bugün “Legal Tech Atölyemiz” için bu dijital kimliği birlikte çıkaracağız.

    1️⃣ Karakter Kodlaması: <meta charset="utf-8">

    Her web sayfasının ilk işi: “Ben hangi dili, hangi alfabe setiyle konuşuyorum?” demekti hatırlarsanız, yukaırd belirtmiştim zaten lang’ın önemini. Bir de utf-8'imiz var.

    <meta charset="utf-8">

    Bu satır, karakterlerin doğru görüntülenmesi için tarayıcıya net bir komut verir:

    Ben UTF-8 kullanıyorum.

    Peki neden bu kadar önemli?

  • Çünkü Türkçe’de “ş, ç, ğ, ü, ı, ö” gibi özel karakterler var. Eğer UTF-8 belirtmezsen, sitende “garip semboller” çıkar, mahkeme kararları “bozulmuş yazı”ya dönüşür.
  • Ayrıca, bu sayfanın ileride veritabanıyla ya da bir API ile iletişim kuracağını düşün. Yanlış karakter seti, veri bozulmasına ve hukuki belgelerde hata payına neden olabilir.
  • Dahası? HTML5 standardı için zorunlu bu zaten. Yani teknik olarak da hukuki olarak da vazgeçilmez. (keza Google standratlarını tekrar hatırlatalım burada)
  • 💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 4d9c

    2️⃣ Sayfa Başlığı: <title>Legal Tech Atölyesi</title>

    İşte bu satırla tarayıcı sekmesinde ne yazacağını, arama motorlarında nasıl görünmek istediğini ve sosyal medya link önizlemelerinde ne çıkacağını belirliyorsun:

    <title> Legal Tech Atölyesi – Teknoloji Hukuku Eğitim Serisi </title>

    ➡️ Tavsiye: Her sayfana benzersiz ve anlamlı bir başlık vermelisin ki insanlar neye tıkladıklarında ne göreceklerini görsünler

    3️⃣ Görüntüleme Alanı (Viewport): Mobil Uyumun Hukuki Yüzü

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    Bu satır, sayfanın cihazlara göre nasıl görüneceğini belirler. Mobil uyumlu olmayan bir sayfa ne demek biliyor musun?

  • Engelli bireylerin içeriğe erişimini zorlaştırmak demek,
  • WCAG ve ADA gibi erişilebilirlik yasalarına aykırılık demek,
  • Ve mobilde kullanılamayan arayüzler üzerinden tüketici haklarının ihlali demek.
  • Bugün birçok teknik dava ve şikayet, web sayfalarının mobilde bozuk görünmesi, formların çalışmaması veya erişilememesi gibi “küçük” problemlerden kaynaklanıyor. Ama bunlar aslında tasarımsal bile değil, yasal sorunlar, dolayısıyla amacımız neydi hatırlayın!

    4️⃣ Diğer Meta Etiketler: Hukuki Etki Alanları

    İçeriğe göre <head> bölümüne şunlar da eklenebilir:

    <meta name="description" content="Legal Tech Atölyesi, hukukçular için web teknolojileri ve dijital güvenlik üzerine eğitici bir içerik serisidir.">
    <meta name="robots" content="index, follow">
    <base href="https://karakodlaw.com/atolye/">
  • description etiketi, arama sonuçlarında görünen kısa açıklama kısmıdır. Yanlış yazılırsa ya da eksik kalırsa, Google otomatik ve alakasız bir metin çeker dolayısıyla metni düzgün yazmamız gerek
  • robots etiketi, arama motorlarının seni dizine ekleyip eklemeyeceğini belirler
  • robots etiketi bununla beraber, arama motoru botlarına bu sayfayı tarayıp taramama, dizine ekleyip eklememe, linkleri takip edip etmeme gibi talimatlar da verir. Hassas veya taslak aşamasında olan sayfaları dizine eklettirmek istemediğimizde robotskullanırız. ya da kullanıcıya açık ama Google’a kapalı bir yapı kurmak istediğimizde (örneğin, geçici bir kampanya sayfası) yine bu etiketi kullanırız

    ⚖️ Hukuki bağlam:

  • Özellikle kişisel veri içeren sayfalar, kullanıcı hesap özetleri, admin panelleri veya arşiv sayfalarında noindex etiketi kullanmak, veri ihlallerini azaltmaya yardımcı olacaktır, bu nedenle hukuki açıdan tavsiyedir. KVKK ve GDPR gibi düzenlemelerde, gereksiz veri yayılımını engellemek, bildiğiniz gibi sorumluluk riskini azaltıyor, bu nedenle noindex etiketi kullanın
  • base etiketi, tüm bağlantıların hangi URL’den türeyeceğini belirler, asıl URL’lerden biridir

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 9f7f

    HTML Listeleri: Yapılar, Hukuki Bağlamlar ve Erişilebilirlik

    HTML listeleri, göründüğünden çok daha fazla yönde kullanılan, semantik anlam taşıyan ve hem geliştirici deneyimini hem de kullanıcı deneyimini iyileştiren temel yapılardan biridir arkadaşlar. Google’ın web.dev ve resmi HTML standartlarına dayanarak, listelerin teknik detaylarını, semantik anlamlarını ve hukuki etkilerini adım adım anlatıp yazıyı bir örnekle sonlandıracağım. Anlaştık! :)

    ✅ 1. Sırasız Liste (Unordered List — <ul>) ve <li>

    Neden bazı duurmlarda <ul> bazı durumlarda ise <li> kullanılır ve farkı nedir?

    Madde sırasının önemli olmadığı durumlarda (politikalar, özellik listeleri, öğrenme hedefleri vb.) <ul> kullanmamız gerekiyor. Mesela gizlilik politikalarını madde madde sunmak, hukukçu aerkadaşlarımın bilgiği gibi açık rıza almak için şarttır.

    Ekran okuyucular bu yapıya duyarlılar. WCAG standardına göre, “bilgilendirme listeleri” listeler olarak kodlanmazsa bu, erişilebilirlik ihlali sayılacaktır.

    <ul>
      <li>Gizlilik Politikaları</li>
      <li>KVKK ve GDPR Açıklamaları</li>
      <li>Çerez Kullanım İzinleri</li>
    </ul>
    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - e2b7

    Ama bir de sıralamanın önemli olduğu ve karışmaması gereken durumlar var değil mi? Ne gibi Elif?

  • Sözleşme maddelerinde
  • Hizmet Koşulları belgelerinde
  • Akademik ya da hukuki raporlamada sıralamayı takip etmemiz gerekiyor, karışmamalı değil mi?
  • Sayılarla sıralamanın anlam taşıdığı yerlerde (kanunlar, protokoller, kamu belgeleri vb.) sırasız liste kullanılması, semantik yanlış anlamlandırmaya sebep olacağı için hukuken de sorun çıkarabilir. Örneğin şöyle:

    <ol type="A" start="3">
      <li>Giriş</li>
      <li>Tanımlar</li>
      <li>Yürürlüğe Giriş Tarihi</li>
    </ol>
    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 73cb

    type, ve start de kullandım burada, hemen vereyim açıklamasını:

  • type: İngilizce (a, A) ya da Roma (i, I) rakamları ile sıralama yapar, yani nasıl sıralamak istediğimizi belirtiyoruz
  • start: Numara kaçtan başlayacak bunu açıklamamızı sağlar
  • Bir de arkadaşilar, Description List dediğimiz listelerimiz var. ( <dl>, <dt>, <dd>)

    Description List

    Bu yapı şu üç etiketten oluşur:

  • <dl>: Description List – Tanım listesini başlatan kapsayıcı etikettir bu
  • <dt>: Description Term – Tanımlanacak terimi belirtir bu
  • <dd>: Description Definition – Terimin açıklamasını içerir bu
  • bir örnekle açıklayayım:

    Veri sorumlusu, bildiğiniz gibi KVKK (Türkiye’de) ve GDPR (AB’de) kapsamında, kullanıcının işlenen veriler hakkında anlaşılır ve açık bilgi almasını sağlamakla yükümlüdür. Bu yükümlülükler kapsamında, şu örnekleri düşünelim misal:

  • Kullanıcı e-posta adresi neden toplanıyor?
  • Toplanan konum verisi ne amaçla işleniyor?
  • Kullanıcı verisi üçüncü taraflarla hangi kapsamda paylaşılır?
  • Bu tür soruların yanıtları kullanıcıya düzenli, etiketli ve erişilebilir bir şekilde sunulmalıdır.

    İşte tam bu noktada <dl> yapısı çok güçlü bir araç bizim için. Her bir veri tipi (örneğin: E-posta) bir <dt> ile tanımlanır ve amacı veya işlenme süreci bir <dd> etiketiyle detaylandırılır.

    <dl>
      <dt>Toplanan Veri:</dt>
      <dd>E-posta Adresi</dd>
    
      <dt>İşleme Amacı:</dt>
      <dd>Kullanıcı hesabının oluşturulması, kimlik doğrulama ve bilgilendirme e-postalarının gönderimi</dd>
    
      <dt>Hukuki Dayanak:</dt>
      <dd>6698 sayılı Kişisel Verilerin Korunması Kanunu’nun 5/2-c maddesi: Bir sözleşmenin kurulması veya ifasıyla doğrudan ilgili olması</dd>
    
      <dt>Veri Saklama Süresi:</dt>
      <dd>İlgili sözleşme sona erdikten sonra 2 yıl süreyle saklanacaktır</dd>
    
      <dt>Veri Paylaşımı:</dt>
      <dd>Yalnızca e-posta altyapı hizmeti sağlayıcısı (örneğin: Mailgun) ile paylaşılır</dd>
    
    </dl>
    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 1c94

    Umuyorum ki şu ana kadar yapılan açıklamalar ve verdiğim bilgiler anlaşılır olmuştur.

    Şimdi şu ana kadar öğrendiklerimizi en genel bir örnekle açıklayalım, ne yaptık, ne öğrendik?

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 4cdf

    💡 Bu kısa örnekte ne öğrendik?

  • <!DOCTYPE html> ile tarayıcıya “bu modern bir HTML5 sayfasıdır” dedik.
  • <html lang="tr"> ile sayfanın Türkçe olduğunu belirttik: erişilebilirlik + SEO + çeviri sistemleri için yazdık
  • <meta charset="UTF-8"> ile Türkçe karakterleri doğru görüntülemek için karakter setini tanımladık
  • <title> ile sekmede görülecek sayfa başlığını belirledik.
  • <h1>, <p>, <img>, <ul> gibi temel öğeleri doğru yerlerde kullandık, içeriği tarif ettik
  • <strong>, <em> gibi anlamsal vurgular da yaptık
  • <span lang="fr"> ile farklı dildeki içerikleri işaretleyerek erişilebilirliğe katkı sağladık ve hangi kısımların hangi dil olacağını öğrendik
  • Siz de kopyalayıp yapıştırarak deneyebilirsiniz:

    <!DOCTYPE html>
    <html lang="tr">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Legal Tech Atölyesi</title>
      </head>
    
      <body>
        <h1>Merhaba, ben Elif!</h1>
        <p>Bu sayfa HTML öğrenmeye başlayan hukukçular için hazırlandı.</p>
    
        <p>
          Bu paragrafta <strong><em>vurgulanmış bir metin</em></strong> var.
        </p>
    
        <img src="legaltech.jpg" alt="Legal Tech logosu" />
    
        <ul>
          <li>HTML nedir?</li>
          <li>Doctype ne işe yarar?</li>
          <li>UTF-8 neden önemli?</li>
        </ul>
    
        <p>Fransızca bir örnek: <span lang="fr">Ceci n'est pas une pipe.</span></p>
      </body>
    </html>

    Teknik okumalar ve kaynaklar için mutlaka Google’ın web.dev’ine göz atmanızı tavsiye ederim :)

    💻 HTML, Listeler ve İçerik Alıştırmaları— Web Serisi 2 image - 5719

    Arkadaşlar arkadaşlar, webi sadece yazılım dili olarak değil, hukuki bir ifade biçimi olarak da okumayı öğreniyoruz sizlerle. Umuyorum ki faydalı oluyordur. Hazırsanız eğer serinin diğer yazısında, form etiketlerine başlayalım 🎯 İyi çalışmalar dilerim!

    İletişim için:

  • hilal@karakod.net
  • elif@ehilal.net
  • İçeriklerime YouTube kanalım üzerinden ulaşabilirsiniz. Hakkımda daha fazla bilgi edinmek için websitemi ziyaret edebilir, teknik veya hukuki konularda destek almak için bana ulaşabilirsiniz! 👩🏻‍💻

    Ayrıca yakında ingilizce ve Türkçe olarak vereceğim Legal Tech & Web Development Bootcamp’ine beklerim! Stay tuned ❤️

    Karakod is a global software development firm specializing in AI, blockchain, IoT and more. We provide innovative solutions to help you protect and grow your business in the digital age.

    • Karakod LinkedIn
    • info@karakod.net

    The Digital Legal Guide — Join the Newsletter!

    Subscribe to our newsletter for the latest insights on tech, startups, and more.

    Services

      Blockchain Infrastructure

      • Smart Contract Development
      • Private Blockchain Deployment
      • Node Operations & Integration
      • Token Economy Design
      • Decentralized Application Development
      • Blockchain Security Audit

      Cybersecurity & Cloud Security

      • Cloud Infrastructure Hardening
      • Security Operations & Monitoring
      • Zero-Trust Architecture
      • Identity & Access Management (IAM)
      • Threat Intelligence & Risk Assessment
      • Compliance & Security Frameworks

      AI Systems & Automation

      • Machine Learning Solutions
      • Intelligent Process Automation
      • AI Integration & Deployment
      • AI Audit
      • Computer Vision Solutions
      • Predictive Analytics & Automation
    © 2025 Karakod. All rights reserved.