Ö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 temeli geliştirirken kaynak denemesi aşamasında kalmaya devam ediyor. 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çeriksiz bir boş öğ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 geri dönüşler, <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 ve daha sorunsuz bir hizmet düşüşü sağlanı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() statik yöntemini kullanıma sunduk:

HTMLPermissionElement.isTypeSupported('geolocation');

Bu yöntem, belirtilen izin türünün desteklenip desteklenmediğini gösteren 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 eklemek 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 olmamasına rağmen siyah ana hat 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: Bu öğe artık Android cihazlarda çalışıyor ve farklı kullanıcı platformlarında kullanılabilirliği artıyor.
  • Coğrafi konum desteği: Artık ek bir type="geolocation" boolean özelliğiyle <permission> öğesini kullanarak preciselocation izinleri isteyebilirsiniz. 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> öğesindeki bu iyileştirmeler, izin isteklerini kolaylaştırmak ve web'deki kullanıcı deneyimini iyileştirmek için devam eden çalışmalarımızı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.