<?xml version='1.0' encoding='UTF-8'?>

<div1 id="conform">
  <head>Uyumluluk: gereksinimler ve öneriler</head>

  <div2 id="conform1">
    <head>Tanımlar</head>
<p>Bu bölümde yazarlar, kullanıcılar ve gerçeklenimciler arasında ortak dil konusunda bir anlaşma sağlayarak, BB2 belirtimine şeklen başlayacağız.</p>

<p><indexterm><primary><rfc2119>ZORUNLU</rfc2119></primary></indexterm>
<indexterm><primary><rfc2119>ÖNERİ</rfc2119></primary></indexterm>
<indexterm><primary><rfc2119>SEÇİMLİK</rfc2119></primary></indexterm>
Bu çeviride, vurgulandıklarında, <rfc2119>ZORUNLU</rfc2119>, <rfc2119>ÖNERİ</rfc2119> ve <rfc2119>SEÇİMLİK</rfc2119> anahtar sözcükleri <bibref ref="keywords"/>'un Türkçe çevirisinde açıklandığı gibi yorumlanır. Ç.N. - Deniyorsa da bu gösterime bu belgede rastlamayacaksınız (özgün belgede de olmadığından).</p>

<p>Bu aşamada, bu belirtim yazarlar ve kullanıcı arayüzleri için doğru uygulamalar önerir. Bu öneriler uyulması zorunlu öneriler değildir ve bu belirtimle uyumluluk bunların gerçekleşmesine bağlı değildir. Bu öneriler arasında "... öneririz", "Bu belirtim ... önerir" ve benzeri ifadeler bulunacaktır.</p>

<glist><gitem>
<label><indexterm><primary>biçembent</primary></indexterm>
Biçembent</label>
<def><p>Bir belgenin sunumunda belirleyici olan yönergeler.</p>

<p>Biçembentler üç farklı kaynaktan elde edilirler: <termref def="author">yazar</termref>, <termref def="user">kullanıcı</termref> ve <termref def="user-agent">kullanıcı arayüzü</termref>. Bu kaynaklar arasındaki etkileşim <specref ref="cascade"/> bölümünde açıklanmıştır.</p></def>
</gitem>
<gitem>
<label id="valid-style-sheet">
<indexterm><primary>geçerli biçembent</primary></indexterm>
Geçerli biçembent</label>
<def><p>Bir <term>biçembendin geçerliliği</term> biçembent için kullanılan BB aşamasına bağlıdır. Tüm geçerli BB1 biçembentleri aynı zamanda geçerli BB2 biçembentleridir. Bununla birlikte, <titleref ref="changes-from-css1">BB1den farklılıklar</titleref> nedeniyle birkaç BB1 biçembendinin anlambilgisi BB2'den biraz farklı olacaktır.</p>

<p><indexterm><primary>kuraldışı</primary></indexterm>
Geçerli bir BB2 biçembendinin <titleref ref="grammar">BB2 yazım bilgisi</titleref>ne göre yazılması gerekir. Dahası, bu belirtimde tanımlanmış kuyruklu-a kuralları, nitelik adları ve değerlerini içermesi gerekir. Bir <term>kuraldışı</term> kuyruklu-a kuralı, nitelik adı veya değerinin varlığında biçembent geçerli kabul edilmez.</p></def>
</gitem>
<gitem>
<label><indexterm><primary>kaynak belge</primary></indexterm>
Kaynak belge</label>
<def><p>Bir veya daha fazla sayıda biçembende atıfta bulunan belge. Belge, belgeyi bir <termref def="element">eleman</termref> ağacı olarak ifade eden bir dille kodlanmıştır. Her eleman, eleman türünü belirten bir isim, istenen sayıda <termref def="attribute">öznitelik</termref> ve (boş olması olası) bir <termref def="content">içeriğe</termref> sahiptir.</p></def>
</gitem>
<gitem>
<label id="doclanguage">
<indexterm><primary>belge dili</primary></indexterm>
Belge dili</label>
<def><p>Kaynak belgeyi kodlayan dil (HTML, XML gibi).</p></def>
</gitem>
<gitem>
<label id="element"><indexterm><primary>eleman</primary></indexterm>
Eleman</label>
<def><p>(Bir SGML terimi, <bibref ref="ref-ISO8879"/>'a bakınız.) Belge dilinde başat sözdizimsel oluşumlar. Çoğu BB biçembent kuralı biçimleme bilgisini belirtmek için eleman isimlerini kullanır (HTML için <htmltag>p</htmltag>, <htmltag>table</htmltag> ve <htmltag>ol</htmltag> gibi).</p></def>
</gitem>
<gitem>
<label id="replaced-element"><indexterm><primary>yerleştirilen eleman</primary></indexterm>
Yerleştirilen eleman</label>
<def><p>BB biçimleyicinin, yerleşik boyutlarının olduğunu bildiği eleman türlerinden biri. HTML'deki <htmltag>img</htmltag>, <htmltag>input</htmltag>, <htmltag>textarea</htmltag>, <htmltag>select</htmltag> ve <htmltag>object</htmltag> elemanları yerleştirilen elemanlara birer örnektir. Örneğin, <htmltag>img</htmltag> elemanının içeriği olarak '<tt>src</tt>' özniteliğine göre atanan resim yerleştirilir. BB yerleştirilen elemanların boyutların nasıl bulunacağını tanımlamaz.</p></def>
</gitem>
<gitem>
<label id="non-replaced-element">
<indexterm><primary>yerleştirilmeyen eleman</primary></indexterm>
Yerleştirilmeyen eleman</label>
<def><p>Yerleşik boyutları olmayan (örneğin, <htmltag>img</htmltag> genişliği ve yüksekliği sabit, yerleşik boyutları olan bir eleman türüdür; bu türden olmayan elemanlara) <term>yerleştirilmeyen elemanlar</term> denir.</p></def>
</gitem>
<gitem>
<label id="intrinsic">
<indexterm><primary>yerleşik boyut</primary></indexterm>
Yerleşik boyut</label>
<def><p>Elemanın kendisi tarafından belirtilen, çevredeki elemanlarca dayatılmış olmayan genişlik ve yükseklik. BB2'de sadece ve sadece yerleştirilen elemanların yerleşik boyutlarla geldiği kabul edilir.</p></def>
</gitem>
<gitem>
<label id="attribute">
<indexterm><primary>öznitelik</primary></indexterm>
Öznitelik</label>
<def><p>Bir elemanla ilişkilendirilmiş bir isim-değer çifti. Bir isim ve dizgesel bir değerden oluşur.</p></def>
</gitem>
<gitem>
<label id="content">
<indexterm><primary>içerik</primary></indexterm>
İçerik</label>
<def><p><indexterm><primary>boş</primary></indexterm>
<indexterm><primary>ebeveyn</primary></indexterm>
Kaynak belgedeki bir elemanla ilişkili olan içerik. Bütün elemanların birer içeriği olmayabilir; içeriği olmayan elemanlara <term>boş</term> elemanlar denir. Eleman içeriği metin ve alt elemanlardan oluşur. Alt elemanları olan bir eleman, alt elemanlarının <term>ebeveyn</term>i olur.</p></def>
</gitem>
<gitem>
<label id="rendered-content">
<indexterm><primary>içerik</primary><secondary>oluşturulan </secondary></indexterm>
<indexterm><primary>oluşturulan içerik</primary></indexterm>
Oluşturulan içerik</label>
<def><p>Bir elemanın içeriği oluşturulduktan sonra buna ilgili biçembentler uygulanır. Bir <termref def="replaced-element">yerleştirilen elemanın</termref> oluşturulan içeriği kaynak belge dışından gelir. Oluşturulan içerik bir eleman için asıl içeriğinden başka bir içerik olabileceği (örneğin, HTML'deki '<tt>alt</tt>' özniteliğinin değeri) gibi biçembent tarafından doğrudan veya dolaylı olarak yerleştirilen öğeleri de içerebilir (madde imleri, numaralama gibi).</p></def>
</gitem>
<gitem>
<label id="doctree">
<indexterm><primary>belge ağacı</primary></indexterm>
Belge ağacı</label>
<def><p><indexterm><primary>root</primary></indexterm>
Kaynak belgede kodlu eleman ağacı. Bu ağaçtaki her elemanın, <term id="root">kök</term> eleman hariç, bir ebeveyni vardır (Kök elemanın ebeveyni yoktur).</p></def>
</gitem>
<gitem>
<label><indexterm><primary>çocuk</primary></indexterm>
Çocuk</label>
<def><p>Bir A elemanının bir B elemanının çocuğu olması için gerek ve yeter koşul, B elemanının A elemanının ebeveyni olmasıdır.</p></def>
</gitem>
<gitem>
<label><indexterm><primary>astsallar</primary></indexterm>
Astsallar</label>
<def><p>Bir A elemanının bir B elemanının astsalı olması için A elemanı ya B elemanının çocuğu olmalı ya da B elemanının bir astsalı olan bir C elemanının çocuğu olmalıdır.</p></def>
</gitem>
<gitem>
<label><indexterm><primary>üstseller</primary></indexterm>
Üstseller</label>
<def><p>Bir A elemanının bir B elemanının üstseli olması için gerek ve yeter koşul, B elemanının A elemanının astsalı olmasıdır.</p></def>
</gitem>
<gitem>
<label><indexterm><primary>kardeşler</primary></indexterm>
Kardeşler</label>
<def><p>A ve B elemanlarının <term>kardeş</term> olması için gerek ve yeter koşul, A va B elemanlarının ebeveynlerinin aynı eleman olmasıdır. A elemanı belge ağacında B elemanından önce geliyorsa, B'nin <term>büyük kardeş</term>i, aksi takdirde <term>küçük kardeş</term>i olur.</p></def>
</gitem>
<gitem>
<label id="preceding">
<indexterm><primary>eleman</primary><secondary>öncekilerden </secondary></indexterm>
<indexterm><primary>öncekiler</primary></indexterm>
Öncekiler</label>
<def><p>Bir A elemanının bir B elemanının önceki elemanı olması için A elemanının ya B'nin büyük kardeşi ya da B'nin üstsellerinden birinin büyük kardeşi olması gerekir.</p></def>
</gitem>
<gitem>
<label><indexterm><primary>eleman</primary><secondary>sonrakilerden </secondary></indexterm>
<indexterm><primary>sonrakiler</primary></indexterm>
Sonrakiler</label>
<def><p>Bir A elemanının bir B elemanının sonraki elemanı olması için A elemanının ya B'nin küçük kardeşi ya da B'nin astsallarından birinin küçük kardeşi olması gerekir.</p></def>
</gitem>
<gitem>
<label id="author">
<indexterm><primary>yazım aracı</primary></indexterm>
Yazar</label>
<def><p>Belgeleri ve onlarla ilişkili biçembentleri yazan kişiye <term>yazar</term>, bunları üreten araca da <term>yazım aracı</term> denir.</p></def>
</gitem>
<gitem>
<label id="user">
<indexterm><primary>kullanıcı</primary></indexterm>
Kullanıcı</label>
<def><p>Bir belgeyi okumak, dinlemek veya başka bir şekilde kullanmak için bir kullanıcı arayüzü ile etkileşen kişiye <term>kullanıcı</term> denir. Kullanıcı isterse, kendi kişisel tercihlerini yansıtan bir biçembende sahip olabilir.</p></def>
</gitem>
<gitem>
<label id="user-agent">
<indexterm><primary>kullanıcı arayüzü</primary></indexterm>
Kullanıcı arayüzü (KA)</label>
<def><p>Bir <term>kullanıcı arayüzü</term>  belli bir belge dilinde yazılmış bir belgeyi yorumlayan ve buna bu belirtimin kurallarına uygun olarak biçembentleri uygulayan bir yazılımdır. Bir kullanıcı arayüzü bir belgeyi gösterebilir, seslendirebilir, basılmasını sağlayabilir, başka bir biçime dönüştürebilir, vs.</p></def>
</gitem>
</glist>

<example>
<p>HTML ile kodlanmış bir kaynak belge örneği:</p>

<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <title>My home page</title>
  <body>
    <h1>My home page</h1>
    <p>Welcome to my home page! Let me tell you about my favorite
    composers:</p>
    <ul>
      <li> Elvis Costello</li>
      <li> Johannes Brahms</li>
      <li> Georges Brassens</li>
    </ul>
  </body>
</html>]]></eg>

<p>Bu örneğin belge ağacı şöyle olur:</p>

<figure id="img-doctree">
<graphic source="images/doctree.gif" alt="Örnek belge ağacı"/>
[<loc href="images/longdesc/doctree-desc.html" title="Örnek belge ağacı şeklinin geniş açıklaması">Açıklama</loc>]
</figure>

<p>HTML tanımına göre, <htmltag>head</htmltag> elemanının etiketi kaynak belgede yer almasa bile, çözümleme sırasında ortaya çıkacak ve belge ağacının bir parçası haline gelecektir. Benzer şekilde, kaynak belgede <htmltag>p</htmltag> ve <htmltag>li</htmltag> etiketleri <htmltag>/p</htmltag> ve <htmltag>/li</htmltag> etiketleri ile kapatılmamış olsa bile çözümleyici ne yapılacağını bilecektir (Ç.N. - XHTML için belge yazarı bitiş etiketlerini belgede belirtmek zorundadır; XHTML bu konuda, HTML kadar esnek değildir).</p>
</example>
</div2>

<div2 id="conformance">
<indexterm><primary>uyumluluk</primary></indexterm>
<head>Uyumluluk</head>
<p>Bu bölümde sadece BB2 belirtimi ile <term>uyumluluk</term> tanımlanmıştır. Gelecekte BB'nin başka aşamaları da olabilir ve bunlar bir kullanıcı arayüzünün başka özelliklere uygun olarak gerçeklenmesini gerektirebilir.</p>

<p>Genelde, bu belirtime uyumlu olması istenen bir kullanıcı arayüzü için beklentiler şu noktalarda toplanır:</p>

<olist>
<item><p>En azından bir <titleref ref="media">ortam türünü</titleref> desteklemesi gerekir.</p></item>

<item><p>Her kaynak belge için, desteklediği ortam türleri ile ilişkili ve uygun bütün biçembentleri toplamaya çalışması gerekir. Eğer hepsini toplayamazsa (bir ağ sorunu nedeniyle örneğin), belgeyi toplayabildikleri ile göstermelidir.</p></item>

<item><p><indexterm><primary>ignore</primary></indexterm>
Biçembentleri bu belirtime göre çözümlemelidir. Özellikle, kuyruklu-a kurallarını, blokları, bildirimleri ve seçicileri desteklemelidir <specref ref="grammar"/> bölümüne bakınız). Eğer bir kullanıcı arayüzü desteklenen bir ortam türüne bir niteliğin uygulandığnı saptarsa, değeri niteliğin tanımına uygun olarak çözümlemelidir. Yani, kullanıcı arayüzleri tüm değerleri kabul etmeli ama geçersiz bildirimleri <emph> yoksaymalıdır</emph>. Kullanıcı arayüzlerininin desteklenmeyen <titleref ref="media">ortam türlerini</titleref> <emph> yoksaymaları </emph> gerekir.</p></item>

<item><p><termref def="doctree">Belge ağacı</termref>ndaki her eleman için, nitelik tanımına ve <specref ref="cascade"/> bölümündeki kurallara uygun olarak uygulanabilir her nitelik için bir değer atamalıdır.</p></item>

<item><p>Eğer belge başka biçembentlerle de geliyorsa (örneğin, HTML 4.0'da <bibref ref="ref-HTML40"/> "alternate" sözcüğü ile betimlenmiş olarak), kullanıcı arayüzü kullanıcının  biçembentlerden birini seçebilmesine olanak sağlamalı ve seçileni uygulamalıdır.</p></item>
</olist>

<p>Her kullanıcı arayüzü için beklenmemekle birlikte:</p>

<ulist>
<item><p>Biçembentleri girdi olarak alan bir kullanıcı arayüzünün 1, 2 ve 3. maddelere uyması gerekir.</p></item>

<item><p>Bir yazım aracının sadece <termref def="valid-style-sheet">geçerli biçembentleri</termref> çıktılaması gerekir.</p></item>

<item><p>Bir belgeyi biçembentlere uygun olarak oluşturan bir kullanıcı arayüzünün 1, 2, 3, 4 ve 5. maddelere uyması ve belgeyi, bu belirtimdekinden daha ortama özgü gereksinimlere uygun olarak oluşturması gerekir. <titleref ref="actual-value">Değerler</titleref> için gerektiğinde kullanıcı arayüzü tarafından yaklaşımda bulunulabilir.</p></item>
</ulist>

<p>Bir kullanıcı arayüzünün, belli bir aygıtın sınırlamalarından dolayı bu belirtime uygun gerçeklenememesi bir uyumsuzluk olarak nitelenmez (örneğin, kullanıcı arayüzleri renkleri bir siyah-beyaz monitörde gösteremez).</p>

<p>Bu belirtim, bir kullanıcı arayüzünün kullanıcısına, bir kullanıcı biçembenti belirtebilme olanağı sağlamasını önerir.</p>

</div2>

<div2 id="conform3"><head>Hata durumları</head>

<p>Genelde, bu belirtim kullanıcı arayüzlerinin hataları nasıl yakalayacaklarını belirtmez (örneğin, bir tanım-yeri tarafından atanan bir özkaynak bulunamadığında kullanıcı arayüzünün ne yapması gerektiğini söylemez).</p>

<p>Bununla birlikte, kullanıcı arayüzlerinin <titleref ref="parsing-errors">çözümleme hatalarını yakalama kuralları</titleref>nı yerine getirmeleri gerekir.</p>

<p>Kulanıcı arayüzlerinin hatalar karşısındaki davranışları farklı olabileceğinden, yazarlar ve kullanıcılar belli bir hatadan kaçınma davranışı beklentisine girmemelidirler.</p>

</div2>

<div2 id="text-css">
<indexterm><primary>text/css</primary></indexterm>
<head><code><kw>text/css</kw></code> içerik türü</head>

<p><indexterm><primary>message entity</primary></indexterm>
Ayrı dosyalar halindeki BB biçembentleri, Genel Ağ üzerinden kodlama bilgisi eşliğinde bir bayt dizisi olarak gönderilirler (<bibref ref="ref-HTML40"/>, 5. kısma bakınız). Aktarımın yapısı, bir <termdef id="message-entity" term="ileti öğesi"><term>ileti öğesi</term> olarak RFC 2045 ve RFC 2068 (bkz, <bibref ref="ref-RFC2045"/> ve <bibref ref="ref-RFC2068"/>) tarafından tanımlanmıştır. "<code>text/css</code>" içerik türündeki bir ileti öğesi bağımsız bir BB biçembendini ifade eder. "<code>text/css</code>" içerik türü <bibref ref="ref-RFC2318"/> tarafından kayıt altına alınmıştır.</termdef></p>
</div2>
</div1>

