# HTML5
 - YÖNLENDİRME 
HTML5, İnternet'in çekirdek teknolojilerinden HTML işaretleme standardının beşinci sürümüdür. Internet Explorer, Mozilla Firefox ve Opera tarayıcılarının güncel sürümleri tarafından kısmen desteklenmektedir. Kısaca H5 Google Chrome ve Safari tarayıcılarının güncel sürümleri üzerinde deneme aşamasında da olsa çok daha iyi bir şekilde çalışmaktadır. Günümüzde kullanılan HTML 4.1 sürümü, CSS desteğiyle ne kadar düzenli ve sağlam bir yapıda kodlanırsa kodlansın, yine de fazladan yazılan kodların fonksiyonelliğini bozduğu bilinmektedir. Bu yüzden HTML5, bu ihtiyaçları karşılamak adına geliştirilmeye başlanmıştır. Video paylaşım sitesi YouTube, deneme aşamasında HTML5'i kullanıcılarına sunmaktadır.
HTML5 kullanmak, aynı zamanda UI (kullanıcı arabirimi) mühendislerinin ve back end (sunucu uygulama) geliştiricilerinin sadece tek kod temeli kullanımından yararlanabiliyor olmaları demektir. Yapının temelleri aynı kalsa da her platforma entegre edilmiş back end tabakaları ve görüntüler olabilecektir. Bu, birbirine bağlı bir ürün tecrübesinin ortaya çıkarılmasına yardım eden ürün çizgisinin karşısında gelişimin yayılma sürecini hızlandırmaktadır.
Ses veya film etiketleri gibi birçok özellikli yönleriyle birlikte kullanılması gereken HTML5, sadece bir şekilleme dili olmaktan ziyade Web uygulamaları yazmakta da kullanılabilmektedir. CSS3 ve JavaScript ile birleştirerek çok daha güçlü, uyumlu ve sağlam uygulamaları yapmak mümkündür. Uygulamalar, bu sayede binlerce cihazda birçok ihtimale uygun şekilde kullanılabilmektedir. Özellikle de iliştirilmiş platformlar ve bağlanmış cihazlarla çok daha güçlü olacaklardır.
HTML5 daha çok birlikte çalışabilir uygulamaların önünü açmak için daha detaylı işleme modelleri içermektedir; dokümanlar için mevcut olan biçimlendirmeyi genişletmiş, geliştirmiş ve mantıklı hale getirmiştir. Ayrıca karmaşık web uygulamaları için biçimlendirme ve uygulama programlama arayüzleri çıkarmıştır. Aynı nedenlerden ötürü, HTML5 ayrıca mobil uygulamalar için platformlar arası bir aday olmaktadır, çünkü düşük güçle çalışan cihazlar da hesaplanarak tasarlanmış özellikler içermektedir. 
Yeni pek çok sözdizimsel özellik eklenmiştir. Grafiksel içeriği ve multi medyayı eklemek ve işlemek için, <video>, <audio> ve <canvas> elemanları eklenmiştir. Ayrıca, ölçeklenebilir vektör grafikleri (SVG) içeriği ve matematiksel formüller için MathML desteği eklenmiştir. Dokümanların anlamsal içeriğini genişletmek için, <main>, <section>, <article>, <header>, <footer>, <aside>, <nav> ve <figure> gibi yeni sayfa yapı elemanları eklenmiştir. Bazı yeni özellikler eklenmiştir, bazı eleman ve özellikler kaldırılmıştır ve <a>, <cite> ve <menu> gibi diğerleri değiştirilmiş, tekrar tanımlanmış veya standart hale getirilmiştir.
APIler ve Belge Nesne Modeli (DOM) artık HTML5 tanımının temel bileşenlerindendir ve HTML5 geçersiz dokümanlar için işleyişi daha iyi tanımlamaktadır.


## Geçmişi.
Web Köprü Metni Uygulama Teknolojisi Çalışma Grubu (WHATWG) 2004 yılında yeni standart üzerinde çalışmaya başladı. 
O zamanda, HTML 4.01 2000 yılından itibaren güncellenmemişti ve World Wide Web Consortium (W3C) XHTML 2.0 üzerinde yapılacak geliştirmeler üzerinde çalışıyordu. 2009'da W3C XHTML 2.0 Çalışma Grubunun sona erdirilmesine ve tekrar yenilenmemesine karar verdi. W3C ve WHATWG, şu an HTML5'in geliştirilmesi üzerinde beraber çalışmaktadır.
Mozilla Vakfı ve Opera Software Haziran 2004'te yapılan Dünya Çapında Ağ Konsorsiyomu çalıştayında, mevcut tarayıcılarla uyumlu çalışabilecek teknolojiler geliştirmeye odaklanan ve Web Forms 2.0'ın ilk tasarım taslağını da içeren bir görüş bildirgesi sunmuşlardır. Çalıştay, HTML üzerinde çalışılmasına devam edilmesi konusunda - 8 leyhte ve 14 aleyhte oy ile sonuçlanan - bir oylama ile sonlanmıştır. Çalıştaydan hemen sonra, Web Hiper Metin Uygulama Teknoloji Çalışma Grubu (WHATWG) bu görüş bildirgesi üzerinde çalışmaya başlamak için kurulmuştur ve ikinci bir taslak, Web Uygulamaları 1.0, da ilan edilmiştir. Daha sonra bu iki tanım HTML5'i oluşturacak şekilde birleştirilmiştir. HTML5 tanımı, 2007'de yeni W3C HTML çalışma grubunun başlangıç noktası olarak benimsenmiştir.
WHATWG, 22 Ocak 2008 tarihinde, tanımın ilk çalışma taslağını yayınlamıştır.


### "Flash üzerine Düşünceler".
HTML5'in bazı özellikleri Adobe Flash ile kıyaslansa da, aslında iki teknoloji birbirinden çok farklıdır. Her ikisi de, web sayfaları üzerinde müzik ve video oynatmak ve Ölçeklenebilir Vektör Grafikleri kullanımı için özellikler içermektedir. Ancak, HTML5 tek başına animasyon veya etkileşim için kullanılamamaktadır – CSS3 veya JavaScript eklenmelidir. Doğrudan HTML5 eşleniği olmayan pek çok Flash özellikleri bulunmaktadır. Apple Inc’in o zamanki CEO’su Steve Jobs, “Video izlemek veya herhangi bir web içeriğini işlemek için Flash artık gerekli değildir” ve “HTML5 gibi mobil çağda oluşturulan yeni açık standartlar kazanacaktır” dediği “Flash üzerine Düşünceler” isimli yazısını yayınladıktan sonra, HTML5'in interaktif yetkinlikleri, Nisan 2010 civarında ana akım medyasında bir konu haline gelmiştir. Bu durum, HTML5 gelişmiş fonksiyonalite sunarken, geliştiricilerin HTML5 ve Flash arasındaki işlevsel diğer farklılıklar ile standartın farklı kısımlarına farklı tarayıcıların desteklerini düşünmeleri gerektiğini ortaya çıkaran, web geliştiricileri çevrelerinde bir tartışma ortaya çıkartmıştır. 2011 Kasım başlarında, Adobe, mobil cihazlar için Flash geliştirmeye devam etmeyeceklerini ve çalışmalarını HTML5 kullanan geliştirme araçları üzerinde yoğunlaştıracaklarını duyurmuşlardır.


### Son Çağrı, Aday ve Tavsiye.
14 Şubat 2011'de, W3C HTML5 için açık kilometre taşlarıyla HTML Çalışma Grubu'nu genişletmiştir. Mayıs 2011'de, çalışma grubu HTML5'i, tanımın teknik olarak sağlamlığını onaylamak için W3C içindeki ve dışındaki topluluklar için bir davetiye olan, “Son Çağrı” aşamasına getirilmiştir. W3C, tavsiye için hedef tarih olan 2014 itibarıyla, tam tanım için geniş bir birlikte çalışılabilirliğe erişmek için kapsamlı bir test paketi geliştirmiştir. Ocak 2011'de, WHATWG “HTML5” standardını “HTML” olarak yeniden adlandırmıştır. W3C, yine de HTML5'i çıkarmak için kendi projesine devam etmiştir.
Temmuz 2012'de, WHATWG ve W3C bir çeşit ayrılmaya karar verdiler. W3C, WHATWG'nin bir anlık fotoğrafı olarak da düşünülen ve tek bir tanımlayıcı standart üzerinde odaklanan HTML5 tanım çalışmasına devam edecektir. WHATWG, HTML5 ile ilgili çalışmasına “Canlı Standart” olarak devam edecektir. Canlı standart kavramı, hiçbir zaman tamamlanmayacağı ve sürekli güncellenip geliştirileceği anlamına gelmektedir. Yeni özellikler eklenebilir, ancak mevcut fonksiyonalite kaldırılamaz.
Aralık 2012'de, W3C HTML5'i Aday Tavsiye olarak belirlemiştir. W3C Tavsiyesi olabilmesi için gerekli kriter, “iki tane %100 olarak tamamlanmış ve tamamen birlikte çalıştırılabilir uygulamanın bulunmasıdır.”
16 Eylül 2014'te, W3C HTML5'i Önerilen Tavsiye statüsüne taşımıştır.
28 Ekim 2014'te, HTML5, tanım aşamasını tamamlayan, tutarlı bir W3C Tavsiyesi olarak yayınlanmıştır.
1 Kasım 2016'da, HTML5.1 tutarlı bir W3C Tavsiyesi olarak yayınlanmıştır.
Adobe Flash Player 'ın 31 Aralık 2020'de desteğin sonlanmasıyla birlikte Mozilla Firefox ve Opera gibi internet tarayıcılar HTML 5 'ı aktive etmeye başladılar.


## Özellikler ve APIler.
W3C, daha hızlı ilerleme sağlamak için planın anahtar bir parçası olarak, tanımda yer alan veya önerilecek olan bazı özelliklerin belirlenmesi ve farklı tanımlar olarak ilerletilmesi anlamına gelen modülariteye daha çok önem vermiştir. HTML5'in kendisinde orijinal olarak tanımlanan bazı teknolojiler, şu an farklı tanımlamalarda tanımlanmıştır:
  - HTML Çalışma Grubu – HTML Canvas 2D Context 
  - Web Uygulamaları Çalışma Grubu – Web Messaging, Web Workers, Web Storage, WebSocket, Server-sent events, Web Components (bu HTML5'in de bir parçası değildi)  Web Uygulamaları Çalışma Grubu Ekim 2015'te kapatılmıştır ve çalışmaları Web Platformu Çalışma Grubu'na (WPWG) aktarılmıştır.
  - IETF HyBi Çalışma Grubu – WebSocket Protokolü 
  - WebRTC Çalışma Grubu – WebRTC 
  - Web Media Text Tracks Topluluğu Grubu – WebVTT.
Ekim 2014'te HTML5 tanımının standart hale getirilmesinin ardından, temel literatür ve özellikler dört şekilde genişletilmektedir. Benzer şekilde, HTML5 tanımından çıkarılmış olan bazı özellikler Microdata ve Canvas gibi farklı modüller olarak standart hale getirilmiştir. Polyglot Markup gibi HTML5 eklentileri olarak çıkarılan teknik tanımlar, modül olarak standart hale getirilmiştir. Öncesinde ayrı olan bazı W3C tanımları, SVG gibi HTML5 eklentileri veya özellikleri olarak ortaya çıkarılmıştır. HTML5'in standardizasyon hızını düşürebilecek bazı özellikler, daha sonra gelecek tanımlarla standart hale getirilecektir. HTML 5.1'in 2016 yılında bitmesi beklenmektedir ve şu an W3C standardizasyon planlamasında yer almaktadır.


### Yeni APIler.
İşaretlemeyi belirtmenin dışında, HTML5 JavaScript ile beraber kullanılabilecek uygulama programlama arayüzleri de belirtmektedir. Mevcut DOM arayüzleri genişletilmiş ve temel özellikleri belgelenmiştir. Bunun dışında yeni APIlerde bulunmaktadır, örneğin: 
  - Canvas 
  - Timed Media Playback 
  - Offline 
  - Değiştirilebilir içerik 
  - Drag-and-drop 
  - History 
  - MIME türü ve protokol işleyici kaydı 
  - Microdata 
  - Web Messaging 
  - Web Storage – çerezlere benzer davranış sergileyen ama daha yüksek saklama kapasitesi ve gelişmiş API sunan bir anahtar-değer çifti depolama çerçevesi.
Yukarıdaki teknolojilerin tamamı W3C HTML% tanımında yer almamaktadır, ancak WHATWG HTML tanımında bulunmaktadır. W3C HTML5 veya WHATWG HTML tanımında da yer almayan bazı ilgili teknolojiler aşağıdaki verilmiştir. W3C bunlar için ayrıca tanım yayınlamaktadır:
  - Geolocation 
  - Web SQL Database – yerel bir SQL veritabanı (artık desteklenmemektedir) 
  - IndexedDB – endekslenmiş hiyerarşik anahtar-değer deposu (önceki adıyla WebSimpleDB) 
  - File – dosya yükleme ve dosya değişikliklerini yapmayı amaçlayan bir API 
  - Directories and System – veritabanları tarafından kullanım senaryoları tam olarak sunulamayan istemci taraflı depolama işlemini gerçekleştirmeyi amaçlayan bir API 
  - File Writer – web uygulamalarından dosya yazmak için bir API 
  - Web Audio – web uygulamalarında audio işlemek için yüksek seviye bir JavaScript API 
  - ClassList.
  - Web Cryptography
  - WebRTC
HTML5 web sayfaları içerisinde animasyon sağlayamamaktadır. HTML5 elemanlarının animasyonu için ilave JavaScript veya CSS3 fonksiyonalitesi gerekmektedir. Animasyon JavaScript ve HTML4 kullanılarak#YÖNLENDİRME ve SMIL aracılığıyla SVG elemanları içerisinde yapılabilmektedir, ancak ikincisine ait tarayıcı desteği 2011 itibarıyla belirsizdir.


### Yeni elementler.
  - <article>: Makale, deneme tarzı yazıları kapsar.
  - <aside>: Ana içerikte ayrı yazılan kısımdır.
  - <audio> (<audio>): Sayfaya ses oynatıcı bir modül ekler.
  - <canvas>: Sayfada bir tuval alanı oluşturur. Tuvale çizim javascript ile yapılabilir.
  - <caption>: Başlık olarak düşünülen metinleri düzenler.
  - <datalist>: Düzenlenebilir elementlere otomatik tamamlama özelliği verilmesini sağlar.
  - <details>: Detay bilgisi içerir.
  - <embed>: Dışarıdan eklenen componentler için kullanılır. (Örn: .swf uzantılı dosyalar.)
  - <figcaption>: <figure> elementinin başlığını belirler.
  - <figure>: Çeşitli medya içeriği gruplarını belirler.
  - <footer>: Sitelerin en alt kısmını içine alır.
  - <header>: Sitenin başlık ve açıklama içeriğini alır.
  - <hgroup>: Başlık grubunu belirtir. H1, H2 gibi başlık elementleri burada tanımlanabilir.
  - <mark>: Yazı içerisinde özellikle üstünde durulan kelimeleri belirler.
  - <nav>: Menüleri ve bir takım zaruri işlevleri içine alır.
  - <progress>: İşlem süreci göstergesi ekler.
  - <section>: Sitelerin ana içerik kısmını içine alır.
  - <summary>: Yazının başlığını belirler.
  - <time>: Tarih ve saat verilerini kapsar.
  - <video>: Video oynatıcı bir modül ekler.


### XHTML5.
XML dokümanları, application/xhtml+xml veya application/xml gibi bir XML internet medya türü (genel adıyla MIME türü) ile servis edilmelidir ve XML dil yapısına uymalıdır. XHTML5, basitçe bir XML medya türü ile gönderilen XML ile serilize edilmiş HTML5 verisidir. Hem HTML hem de XHTML tanımına uygun olarak yazılan ve bu yüzden de HTML veya XML olarak yorumlandığında aynı DOM ağacına sahip olan, HTML çok dilli işaretleme (polyglot markup) olarak adlandırılmaktadır.


### Hata işleme.
HTML5, eski tarayıcıların yeni HTML5 yapılarını güvenli bir şekilde ihmal edebileceği şekilde tasarlanmıştır. HTML 4.01'in aksine, HTML5 tanımı, uyumlu tarayıcıların yanlış bir yazım biçimini yorumlarken aynı sonucu vermesi amacıyla, detaylı yorumlama kuralları belirtmektedir. HTML5 yazım biçimi yanlış olan dokümanlar için tutarlı bir davranış tanımlamasına rağmen, bu dokümanlar HTML5 standardına uygunmuş gibi düşünülmemektedir.


### Popülaritesi.
30 Eylül 2011 tarihinde yayınlanan bir rapora göre, dünyanın ilk 100 sitesinden 34'ü HTML5 kullanmaktadır. Ağustos 2013'te yayınlanan başka bir rapor, Fortune 500 şirketlerinden 153'ünün şirket web sayfalarında HTML5 kullandığını göstermektedir.
2014'ten itibaren, HTML5 en çok bilinen görüntüleme motorları tarafından en azından kısmen desteklenmektedir.


### HTML 4.01 ve XHTML 1.x ile Farklılıkları.
Aşağıda farklılıkların genel bir listesi ve bazı özel örnekler bulunmaktadır.
  - Yeni yorumlama kuralları  uyumluluk ve esnek yorumlamayı hedef alan  SGML'ye bağımlı olmayan
  - text/html içerisinde satıriçi SVG ve MathML kullanabilme yeteneği
  - Yeni HTML elemanları: article, aside, audio, bdi, canvas, command, data, datalist, details, embed, figcaption, figure, footer, header, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, track, video, wbr
  - Yeni form kontrol türleri: dates and times, email, url, search, number, range, tel, color
  - Yeni HTML özellikleri: charset (on meta), async (on script)
  - Global özellikler (tüm elemanlar için uygulanabilir): id, tabindex, hidden, data-  (özelleştirilmiş veri özellikleri)
  - Desteği kaldırılan elemanlar tamamen kaldırılacaktır: acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt
dev.w3.org, HTML5 ile HTML 4 arasındaki ekleme, çıkarma ve değişikliklerin tamamını içeren “HTML5 HTML 4'ten farklılıkları”’nın “Editör Taslağı”’nı sağlamaktadır.


## Logo.
18 Ocak 2011’de, W3C HTML5’in kullanımını veya HTML5’e olan ilgiyi simgelemek için bir logo sunmuştur. W3C tarafından çıkarılan önceki logoların aksine, belirli bir standarta uygunluğu veya geçerliliğini ifade etmemektedir. 1 Nisan 2011 itibarıyla, bu logo resmi hale gelmiştir. 
Kamuya ilk olarak duyurulduğunda, W3C HTML5 logosunu “HTML5, CSS, SVG, WOFF ve diğerleri dahil geniş bir web teknolojileri seti için genel amaçlı görsel bir kimlik” olarak duyurmuştur. Web Standartları Projesi dahil bazı web standartları taraftarları, “HTML5” tanımının şemsiye bir terim olduğunu, terminolojinin karışıklığına ve yanlış anlaşılmalar için bir potansiyel olduğuna işaret etmişlerdir. Üç gün sonra, W3C topluluk yorumlarına cevap vermiş ve ilgili teknolojilere olan atıfı logonun tanımından kaldırmıştır. W3C daha sonra logonun “modern web uygulamaları için bir köşe taşı olan HTML5’i temsil ettiğini” ifade etmiştir.


## Dijital haklar yönetimi.
BBC, Google, Microsoft ve Netflix gibi büyük sanayi devleri, bir tür dijital haklar yönetimi (DRM) formu olan Şifrelenmiş Medya Uzantıları’nın HTML5 içerisinde yer alması için lobi faaliyetleri yürütmüştür. 2012 yılının sonları ve 2013 yılının başlarıyla beraber, Özgür Yazılım Vakfı dahil 27 organizasyon HTML5 standardı içerisindeki dijital haklar yönetimine karşı bir kampanya başlatmıştır. Ancak, 2013 Eylül ayının sonlarında, W3C HTML Çalışma Grubu Şifrelenmiş Medya Uzantıları’nın “kapsama” dahil olduğunu ve HTML 5.1 standardı içerisinde muhtemelen yer alacağını duyurmuştur. WHATWG'nin “HTML Canlı Standardı” DRM'e izin veren öneriler olmaksızın geliştirilmeye devam etmiştir.
Bir W3C üyesi olan Manu Sporny, EME'nin çözmesi gerektiği problemi çözmeyeceğini söylemiştir. Karşıtları ise, EME'nin tek başına sadece DRM plugin mekanizmaları için bir mimari olduğuna işaret etmişlerdir.
DRM'in ilk uygulayıcıları Google ve Microsoft olmuştur. Destekleyenler arasında Adobe de bulunmaktadır. 14 Mayıs 2014'te, Mozilla DRM'den kaçınan en son büyük tarayıcı olan Firefox’da EME’yi desteklemeyi planladıklarını duyurmuştur. Bunu “zor ve rahatsızlık verici bir adım” diye niteleyen Mozilla'dan Andreas Gal, Firefox'un gelecek sürümlerinin açık kaynak kodlu olarak kalacağını, ancak Adobe ile geliştirilen bir içerik şifre çözme modülünü çalıştırmak için tasarlanan bir kum havuzu ile beraber geleceğini açıklamıştır. “Alternatif çözümler üzerinde çalışma” sözü verse de, Mozilla Yönetim Kurulu Başkanı Mitchell Baker, EME'nin uygulanmasını reddetmenin pek çok kullanıcıyı tarayıcı değiştirmeye ikna etmek gibi olacağını ifade etmiştir. Bu karar, Cory Doctorow ve Özgür Yazılım Vakfı tarafından kınanmıştır.