مواد پر جائیں
FormFlow

Safari 27 نے مقامی select کو قابلِ تخصیص بنایا

Safari 27.0 16 ستمبر کو آیا، جس میں اسٹائل کرنے کے قابل مقامی select اور اسکرین ریڈر اعلانات کے لیے ariaNotify() شامل ہے۔ کسی اور کے صفحے میں شامل فارم کے لیے اس کا کیا مطلب ہے، اور یہ کیا طے نہیں کرتا۔

یہ مضمون مشین کے ذریعے ترجمہ کیا گیا ہے۔ انگریزی میں اصل مضمون پڑھیں

A dark plate titled 'The native select grows up.' showing an open select with Choose one, Option A and Option B, and a callout reading ariaNotify() for the announced change.

Safari 27.0 16 ستمبر 2026 کو جاری ہوا۔ Apple کے ریلیز نوٹس میں iOS 27، iPadOS 27، visionOS 27، macOS 27، macOS 26 اور macOS Sequoia کے لیے بلڈ 27.0 (20625.1.29) درج ہے۔ 17 ستمبر کو شائع ہونے والا Web Standards خلاصہ 83 نئی خصوصیات گنتا ہے۔

یہ ریلیز گہری کم اور وسیع زیادہ ہے: دوبارہ لکھا گیا ES ماڈیول لوڈر، ذیلی پکسل اِن لائن لے آؤٹ، بغیر فعال کیے کام کرنے والی اسکرول اینکرنگ، service worker کی اسٹیٹک روٹنگ API، اور رسائی اصلاحات کی طویل فہرست۔ 83 میں سے دو خصوصیات طے کرتی ہیں کہ کسی اور کے صفحے میں شامل فارم کیا فرض کر سکتا ہے: ایک مقامی select جسے اسٹائل کیا جا سکتا ہے، اور لائیو ریجن کے بغیر پیغام کا اعلان کرنے کا طریقہ۔

مقامی select اب اسٹائل کے قابل

select عنصر وہ کنٹرول تھا جسے سب سے کم اسٹائل کیا جاتا تھا اور سب سے زیادہ بدلا جاتا تھا۔ قابلِ تخصیص select یہ حساب بدل دیتا ہے۔ appearance: base-select لگانے سے عنصر نئے یوزر ایجنٹ ڈیفالٹس پر چلا جاتا ہے اور باقی خصوصیت کھل جاتی ہے۔

select,
select::picker(select) {
  appearance: base-select;
}
  • ::picker(select) پاپ اپ کو ہی نشانہ بناتا ہے، اور ::picker-icon اس کے تیر کو۔

  • ::checkmark منتخب قطار کے نشان کو نشانہ بناتا ہے۔

  • selectedcontent طے کرتا ہے کہ بند کنٹرول موجودہ آپشن کے لیے کیا دکھائے، اس لیے خلاصہ لیبل کی نقل نہیں بلکہ مارک اپ ہو سکتا ہے۔

  • option اب HTML رکھ سکتا ہے، اس لیے ایک آپشن آئیکن یا دو سطروں کا لیبل لے سکتا ہے۔

ان میں سے کوئی بھی کنٹرول کی جگہ نہیں لیتا۔ یہ اب بھی حقیقی فارم کنٹرول ہے، اس لیے کی بورڈ نیویگیشن، اسکرین ریڈر سیمنٹکس، فارم جمع کرانا، پابندیوں کی توثیق اور change ایونٹ کام کرتے رہتے ہیں۔ div سے دوبارہ بنایا گیا ڈراپ ڈاؤن یہ سب چھوڑ دیتا ہے اور پھر ایک بدتر نسخہ بناتا ہے۔ base-select چننا ایسا نہیں کرتا۔

لائیو ریجن کے بغیر ariaNotify()

Apple کے ریلیز نوٹس ariaNotify API کی معاونت شامل کرتے ہیں، جو متن کو قطار میں ڈالتی ہے تاکہ ARIA لائیو ریجن کے بغیر اسکرین ریڈر اس کا اعلان کرے۔ فارم کے لیے یہ ایک مخصوص خلا بھرتی ہے۔ لائیو ریجن تبھی بولتا ہے جب اس کا مواد بدلے، اس لیے وہی جملہ دہرانے والا غلطی خلاصہ دوسری بار نہ تبدیلی پیدا کرتا ہے نہ اعلان۔ ariaNotify() خود پیغام کو قطار میں ڈالتا ہے۔

خطرہ مقدار کا ہے۔ اعلان توثیقی پیغام نہیں ہے۔ اگر شامل فارم ہر فیلڈ تبدیلی کا اعلان کرے تو اسکرین ریڈر استعمال کرنے والا مسلسل تبصرہ سنتا ہے اور صفحہ چھوڑ دیتا ہے۔ وہی اعلان کریں جس پر شخص کو کارروائی کرنی ہے: جمع کرانے کے بعد پہلی غلط فیلڈ، وہ Submission جو پوری نہ ہوئی، یا وہ Step جو ابھی کھلا ہے۔

شامل فارم میں کیا جانچیں

  • طویل آپشن فہرست پر بند select، ہلکے اور گہرے دونوں موڈ میں۔

  • جنریٹ شدہ کمپوننٹ کے اپنے لے آؤٹ میں select، 320px پر۔

  • غلطی خلاصہ ایک بار اعلان ہو، دو بار نہیں۔

  • forced-colors موڈ، کیونکہ base-select اپنے ڈیفالٹس لاتا ہے۔

FormFlow کا جنریٹ شدہ کمپوننٹ مقامی HTML فارم کنٹرولز پیش کرتا ہے، اس لیے Safari کے نئے ڈیفالٹس ہماری طرف سے کسی تبدیلی کے بغیر شامل فارم تک پہنچ سکتے ہیں۔ اس پوسٹ کے لیے ہم نے جنریٹ شدہ کمپوننٹ کو Safari 27 پر تصدیق نہیں کیا، اور ہم یہ اشارہ نہیں دیں گے کہ کیا ہے۔ اگر آپ فارم شامل کرتے ہیں تو ڈیفالٹ شکل پر بھروسہ کرنے سے پہلے اسے ان Safari ورژنز میں دکھائیں جنہیں آپ معاونت کرتے ہیں۔

یہ کیا طے نہیں کرتا

Safari کا قابلِ تخصیص select جاری کرنا اسے باہم قابلِ عمل نہیں بنا دیتا۔ Web Standards خلاصہ کہتا ہے کہ نیا ڈیفالٹ ڈیزائن مزید بہتر بنانے کے لیے CSS ورکنگ گروپ کو گیا ہے، اور یکساں نقطہ آغاز دوسرے براؤزرز کے اپنے نفاذ کو اپ ڈیٹ کرنے پر منحصر ہے۔ Safari 27 میں درست نظر آنے والا اسٹائل اسی دن کسی دوسرے انجن میں غلط نظر آ سکتا ہے۔

ariaNotify() براؤزر کا اضافہ ہے، فارم کا معیار نہیں۔ یہ طے نہیں کرتا کہ کون سے اعلانات موزوں ہیں، اور یہ لیبل، legend والے fieldset، یا فیلڈ کے پاس نظر آنے والی غلطی کی جگہ نہیں لیتا۔

یہاں کچھ بھی Safari 27 کے لیے FormFlow کا معاونتی بیان نہیں ہے، اور یہاں کچھ بھی یہ نہیں بدلتا کہ شامل فارم ایسے Safari ورژن میں کیسا برتاؤ کرتا ہے جو یہ خصوصیات نہیں دیتا۔ شامل فارم جس POST معاہدے پر بھیجتا ہے، اس کے لیے API حوالہ پڑھیں۔