Önerilen <permission> öğesinde yapılan iyileştirmeler

Yayınlanma tarihi: 12 Mayıs 2025

Önerilen HTML <permission> öğesi, Chrome ekibi ilk kaynak denememizde oluşturulan temel üzerine geliştirme yaptığı için hâlâ kaynak denemesi aşamasındadır. Bu gönderide, web uygulamalarında izin isterken daha fazla esneklik ve kontrol sağlamayı amaçlayan geliştirmeler paylaşılmaktadır. <permission> öğesinin kullanıma sunulması ve ilk özellikleri hakkında kapsamlı bir genel bakış için önceki makalemiz olan Yeni bir HTML <permission> öğesi için kaynak denemesi başlıklı makaleyi inceleyin.

Yedek kullanıcı deneyimi için içerik desteği

<permission> öğesi, Chrome 136'ya kadar başlangıçta içerik içermeyen boş bir öğe olarak tanımlanmıştı. Chrome 137'den itibaren içerik desteklenir. Bu nedenle, artık açma ve kapatma etiketleriyle işaretlenmesi gerekir:

<permission>
  <!-- optional content -->
</permission>

Bu değişiklik, öğenin içeriğine yedek kullanıcı arayüzleri eklemenize olanak tanır. Bu yedekler, <permission> öğesini desteklemeyen tarayıcılarda veya desteklenmeyen bir type özelliği belirtildiğinde gösterilir. Bu sayede, farklı tarayıcı ortamlarında daha iyi bir kullanıcı deneyimi sağlanır ve daha sorunsuz bir şekilde hizmetten yararlanılır.

<!-- Invalid `type` attribute value -->
<permission type="not-supported">
  <p>Your browser does not support the specified <code>type</code>.</p>
</permission>

Daha ayrıntılı programatik özellik algılama

Belirli izin türleri için desteği belirlemenize yardımcı olmak amacıyla isTypeSupported() adlı statik yöntemi kullanıma sunduk:

HTMLPermissionElement.isTypeSupported('geolocation');

Bu yöntem, belirtilen izin türünün desteklenip desteklenmediğini belirten bir boole değeri döndürür. Mevcut özellik algılama typeof HTMLPermissionElement !== 'undefined' ile birlikte artık hem <permission> öğesi hem de belirli izin türleri için desteği programatik olarak sağlayabilirsiniz.

Ayrıca, boşlukla ayrılmış birden fazla izin türü (örneğin, "camera microphone") de iletebileceğinizi ve bunun, genel dizenin geçerli bir "type" değeri olup olmadığını döndüreceğini unutmayın. Örneğin, isTypeSupported() işlevinin aşağıdaki parametrelerle çağrılması şu sonuçları döndürür:

  • "camera"true
  • "geolocation"true
  • "camera geolocation"false (Türler ayrı ayrı desteklense de kombinasyon desteklenmez.)

Güncellenen etkinlik adları

Chrome 136'da, önceki etkinliklerin yerini alacak iki yeni etkinlik kullanıma sunuldu:

  • onpromptdismiss (ondismiss yerine geçer)
  • onpromptaction (onresolve yerine geçer)

Bu yeni etkinlikler daha net bir anlambilim sağlar ve öğenin davranışıyla daha iyi uyum gösterir. Eski etkinliklerin desteği Chrome 138'de sonlandırılacak. Bu nedenle, etkinlik işleyicilerinizi buna göre güncellemenizi öneririz.

Simge desteği

Chrome 138'de kullanıma sunulmak üzere <permission> öğesinde simge desteği sağlamak için çalışıyoruz. Bu özellik, izin türüne karşılık gelen önceden tanımlanmış simgeleri renk ve boyut ayarlamaları gibi sınırlı stil seçenekleriyle görüntülemenize olanak tanır. API'nin tam ayrıntıları henüz kesinleşmemiştir. 

Aşağıdaki örneklerde varsayılan, farklı bir dolgu rengi ve dolgu rengi olmayan ancak siyah ana hatlı bir şekil gösterilmektedir.

Varsayılan stil

Simgenin varsayılan oluşturma şekli.

Simgenin varsayılan rengi, izin öğesinin metin rengiyle aynıdır.

Değiştirilmiş stil

Aşağıdaki örneklerde, varsayılan stil üzerinde yapılan örnek değişiklikler gösterilmektedir.

Simge rengini değiştirme

::permission-icon {
  fill: black;
}

Düz siyah simgeyle değiştirilmiş oluşturma.

Simge ana hattının değiştirilmesi

::permission-icon {
  fill: white;
  stroke: black;
  stroke-width: 20px;
}

Siyah ana hat simgesiyle değiştirilmiş oluşturma.

Simgeyi devre dışı bırakma

Bu özellik kullanıma sunulduğunda simge varsayılan olarak etkinleştirilir. Simgeyi devre dışı bırakmak istiyorsanız aşağıdaki CSS'yi kullanabilirsiniz.

::permission-icon {
  display: none;
}

Stil kuralları

En iyi uygulamalar ve kısıtlamalar da dahil olmak üzere <permission> öğesini stilize etme hakkında kapsamlı bilgi için <permission> stilize etme yönergelerine bakın. Bu kaynak, uygulamalarınızdaki öğeyi etkili bir şekilde stilize etmenize yardımcı olacak ayrıntılı talimatlar sağlar.

Genişletilmiş platform ve özellik desteği

<permission> öğesi artık ek platformları ve özellikleri destekliyor:

  • Android desteği: Öğenin Android cihazlarda işlevsel hale gelmesiyle birlikte, farklı kullanıcı platformlarındaki uygulanabilirliği artırıldı.
  • Coğrafi konum desteği: Artık ek bir type="geolocation" preciselocation boole özelliğiyle <permission> öğesini kullanarak izin isteğinde bulunabilirsiniz. preciselocation özelliği yalnızca istemin kelime seçimini etkilese de gelecekteki güncellemelerde kaba ve kesin konum izinleri arasında ayrım yapma konusunda çalışmalarımızı sürdürüyoruz.

Sonuçlar

<permission> öğesinde yapılan bu iyileştirmeler, izin isteklerini kolaylaştırmak ve web'deki kullanıcı deneyimini iyileştirmek için sürdürdüğümüz çalışmaların bir parçasıdır. Bu yeni özellikleri denemenizi ve bu özelliği iyileştirip geliştirmemize yardımcı olmak için geri bildirimde bulunmanızı öneririz.