Bold Text — یک ویژگی دسترسیپذیری است که ظاهر استاندارد فونت را در تمام عناصر رابط سیستمعامل به ضخیم تغییر میدهد. در iOS، تنظیمات در Settings > Display & Brightness > Bold Text قرار دارد و برای اعمال نیاز به راهاندازی مجدد دستگاه دارد. در Android، عملکرد مشابه «خوانایی بهبودیافته» یا High Contrast Text نامیده میشود. بر اساس دادههای W3C WAI، متن ضخیم خوانایی را برای افراد با اختلالات بینایی ۲۰–۲۵٪ افزایش میدهد.
نکات اصلی
Bold Text یک تنظیم سیستمعامل است که استفاده از فونت ضخیم را برای تمام عناصر متنی رابط به جای استاندارد (regular یا normal) تجویز میکند. برخلاف افزایش ساده اندازه فونت، Bold Text مقیاس را تغییر نمیدهد — ضخامت خطوط حروف را افزایش میدهد و آنها را در زمینه پررنگتر و متضادتر میکند.
این ویژگی به دسته display accommodations — تنظیمات صفحه که به افراد با اختلالات بینایی کمک میکند اطلاعات را راحتتر درک کنند — تعلق دارد. Bold Text به ویژه در کاهش حدت بینایی (آمبلیوپی)، دوربینی پیری (پیرچشمی) و برخی اشکال دیسلکسی که در آنها حروف با ضخامت استاندارد «دوتایی» یا «شناور» به نظر میرسند، مؤثر است.
فونت ضخیم readability — سرعت و دقت تشخیص حروف فردی را افزایش میدهد. تحقیقات Usability.gov نشان میدهد که ضخامت bold دقت خواندن را در کاربران با اختلالات بینایی در مقایسه با فونت معمولی هماندازه ۱۲–۱۸٪ افزایش میدهد. Bold Text جایگزین بزرگنمایی متن نمیشود — هر دو ویژگی قابل ترکیب هستند.
تفاوت کلیدی Bold Text با Dynamic Type (iOS) یا Font Size (Android) — مکانیسم تأثیر است. بزرگنمایی فونت اندازه حروف را تغییر میدهد، Bold Text — فقط ضخامت را. با بزرگنمایی فونت، ظرفیت صفحه کاهش مییابد (محتوا کمتر روی صفحه جا میشود)، Bold Text تعداد عناصر قابل مشاهده را حفظ میکند. برای کاربران با پیرچشمی در مراحل اولیه، Bold Text اغلب بدون بزرگنمایی متن کافی است.
| پارامتر | Bold Text | بزرگنمایی فونت |
|---|---|---|
| ضخامت را تغییر میدهد | بله | خیر |
| اندازه را تغییر میدهد | خیر | بله |
| بر ظرفیت صفحه تأثیر میگذارد | حداقل | قابل توجه |
| نیاز به راهاندازی مجدد دارد (iOS) | بله | خیر |
| پشتیبانی در وب (CSS) | font-weight: bold | font-size |
مخاطب اصلی Bold Text — افراد با آمبلیوپی (کاهش حدت بینایی قابل اصلاح با عینک)، پیرچشمی (دوربینی پیری بعد از ۴۰–۴۵ سال) و برخی اشکال دیسلکسی هستند. این ویژگی همچنین هنگام خواندن در آفتاب روشن مفید است — فونت ضخیم کنتراست را در تابش نور حفظ میکند. فناوریهای کمکی مانند VoiceOver و TalkBack مستقل از Bold Text کار میکنند — تنظیم فقط بر نمایش بصری تأثیر میگذارد.
در iOS، Bold Text یکی از قدیمیترین ویژگیهای دسترسیپذیری است که در iOS 7 (۲۰۱۳) ظاهر شد. تنظیمات در Settings > Display & Brightness > Bold Text قرار دارد و نیاز به راهاندازی مجدد iPhone دارد: سیستم تمام فونتها را در برنامههای سیستمی (Settings, Mail, Messages, Calendar, Notes) و برنامههای شخص ثالث که از فونت سیستمی San Francisco استفاده میکنند، بازسازی میکند.
از نظر فنی، iOS فایل فونت سیستمی San Francisco را با نسخه Bold آن (SF Pro Bold / SF Pro Rounded Bold) در سطح چارچوب CoreText جایگزین میکند. پس از فعالسازی Bold Text، تمام خطوط روی صفحه — از عنوانهای ناوبری تا متن دکمهها — با font-weight ۷۰۰ به جای ۴۰۰ نمایش داده میشوند. توسعهدهنده نمیتواند این رفتار را برای عناصر سیستمی لغو کند، اما میتواند فونتها را در رابط کاربری خود از طریق Dynamic Type مدیریت کند.
برای توسعهدهنده، Bold Text فعال به این معنی است که تمام UIFont با textStyle (.body, .headline, .caption و غیره) به طور خودکار ضخیم میشوند. UIFontWeight در دو نسخه وجود دارد: regular (۰.۰) و bold (۱.۰). با Bold Text فعال، سیستم fontWeight را برای هر سبک ۰.۳–۰.۵ افزایش میدهد. وضعیت را میتوان از طریق UIAccessibility.isBoldTextEnabled بررسی کرد.
توسعهدهنده میتواند بررسی کند که آیا Bold Text روی دستگاه فعال است و رابط را تطبیق دهد. مثلاً اگر عنوانهای جدول قبلاً ضخیم هستند، با فعال بودن ویژگی ممکن است نیاز به کاهش ضخامت برای جلوگیری از شلوغی بصری باشد. کد بررسی از چارچوب UIAccessibility استفاده میکند.
import UIKit
class BoldTextManager {
// بررسی وضعیت Bold Text
static var isBoldTextEnabled: Bool {
return UIAccessibility.isBoldTextEnabled
}
// تطبیق فونت با Bold Text
static func adjustedFont(
textStyle: UIFont.TextStyle,
weight: UIFont.Weight
) -> UIFont {
let baseFont = UIFont.preferredFont(
forTextStyle: textStyle
)
guard isBoldTextEnabled else {
return baseFont
}
// ضخامت را کاهش میدهیم تا double-bold نداشته باشیم
let adjustedWeight: UIFont.Weight
switch weight {
case .bold, .heavy:
adjustedWeight = .semibold
case .semibold:
adjustedWeight = .medium
default:
adjustedWeight = weight
}
return UIFont.systemFont(
ofSize: baseFont.pointSize,
weight: adjustedWeight
)
}
// فونت کش شده با پشتیبانی از Bold Text
static func labelFont() -> UIFont {
return adjustedFont(
textStyle: .body,
weight: .regular
)
}
}
// اشتراک در تغییرات Bold Text (Notification)
NotificationCenter.default.addObserver(
self,
selector: #selector(boldTextStatusChanged),
name: UIAccessibility.boldTextStatusDidChangeNotification,
object: nil
)
@objc func boldTextStatusChanged() {
// بهروزرسانی رابط کاربری هنگام تغییر Bold Text
updateFonts()
}کلاس BoldTextManager isBoldTextEnabled را بررسی میکند، وزن فونت را تطبیق میدهد (heavy/bold را در صورت فعال بودن ویژگی به semibold/medium کاهش میدهد) و در اعلان boldTextStatusDidChangeNotification مشترک میشود. این از اثر double-bold جلوگیری میکند، زمانی که توسعهدهنده قبلاً از ضخیم برای عنوانها استفاده کرده و سیستم آنها را بیشتر ضخیم میکند.
Bold Text بر layout سلولهای UITableView و UICollectionView تأثیر میگذارد، زیرا افزایش ضخامت فونت میتواند ارتفاع خط را تغییر دهد. هنگام استفاده از self-sizing cells (estimatedRowHeight + UITableView.automaticDimension) iOS به طور خودکار ارتفاع را هنگام تغییر فونت دوباره محاسبه میکند. برای ارتفاعهای ثابت سلول، توسعهدهنده باید پس از دریافت اعلان boldTextStatusDidChangeNotification، reloadData() را فراخوانی کند، در غیر این صورت متن ممکن است بریده شود.
در Android، ویژگی Bold Text «خوانایی بهبودیافته» (Improve readability) در رابط تنظیمات نامیده میشود و در بخش «دسترسیپذیری» (Accessibility) قرار دارد. در برخی نسخههای Android، به ویژه در دستگاههای Samsung One UI، این ویژگی «متن با کنتراست بالا» یا High Contrast Text نامیده میشود. تنظیمات به تمام عناصر سیستمی و بیشتر برنامههای شخص ثالث اعمال میشود.
پیادهسازی فنی Android با iOS متفاوت است: به جای جایگزینی فونت سیستمی، Android Typeface را در سطح سیستم از طریق Resources.Theme بازنویسی میکند. با فعالسازی تنظیمات، سیستم ویژگی android:textStyle را برای تمام عناصر متنی تغییر میدهد و bold یا italic+bold را تنظیم میکند. توسعهدهنده میتواند وضعیت را از طریق Settings.Global.getFloat() یا AccessibilityManager بررسی کند.
در Android API مستقیم معادل UIAccessibility.isBoldTextEnabled وجود ندارد. بررسی از طریق ContentResolver و Settings.System انجام میشود. این ویژگی در تنظیمات سراسری به عنوان font_weight_adjustment ذخیره میشود. برای Jetpack Compose از طریق LocalDensity و fontScale قابل دسترسی است.
import android.content.Context
import android.provider.Settings
import android.util.TypedValue
import androidx.compose.ui.text.font.FontWeight
class AndroidBoldTextHelper {
// بررسی خوانایی بهبودیافته از طریق تنظیمات سیستم
fun isBoldTextEnabled(context: Context): Boolean {
return try {
Settings.System.getInt(
context.contentResolver,
"font_weight_adjustment"
) == 1
} catch (e: Settings.SettingNotFoundException) {
false
}
}
// Jetpack Compose — تطبیق FontWeight
fun adjustFontWeight(
context: Context,
original: FontWeight
): FontWeight {
if (!isBoldTextEnabled(context)) return original
return when (original) {
FontWeight.Bold, FontWeight.ExtraBold -> FontWeight.SemiBold
FontWeight.SemiBold -> FontWeight.Medium
else -> original
}
}
// XML View — اعمال از طریق TypedValue
fun applyBoldStyleFix(context: Context, textView: android.widget.TextView) {
if (isBoldTextEnabled(context)) {
val paint = textView.paint
val fakeBold = paint.isFakeBoldText
// اگر سیستم قبلاً فعال کرده است fakeBold را کاهش میدهیم
if (fakeBold) {
paint.isFakeBoldText = false
textView.invalidate()
}
}
}
}کلاس AndroidBoldTextHelper تنظیمات سیستمی font_weight_adjustment را میخواند، FontWeight را در Jetpack Compose تطبیق میدهد و fakeBold تکراری را در XML View حذف میکند. برخلاف iOS، Android کانال اعلان برای تغییر Bold Text ارائه نمیدهد — توسعهدهنده تنظیمات را هنگام شروع Activity یا از طریق ContentObserver بررسی میکند.
برای ردیابی تغییرات Bold Text در زمان اجرا، توسعهدهنده Android میتواند از ContentObserver استفاده کند. هنگام تغییر تنظیمات font_weight_adjustment، سیستم به ContentResolver اطلاع میدهد و برنامه میتواند رابط را بهروز کند. این برای AccessibilityService و لانچرهای سفارشی که باید فوراً به تغییرات تنظیمات کاربر واکنش نشان دهند، مهم است.
در توسعه وب، ضخامت فونت توسط ویژگی CSS font-weight با مقادیر ۱۰۰ (Thin) تا ۹۰۰ (Black) کنترل میشود. مقادیر استاندارد: normal = ۴۰۰، bold = ۷۰۰. Bold Text در سیستمعامل مستقیماً بر CSS font-weight تأثیر نمیگذارد — مرورگرهای وب سیگنال سیستمی درباره Bold Text فعال در سطح CSS دریافت نمیکنند. با این حال، توسعهدهنده میتواند از تابع media CSS استفاده کند اگر پلتفرم از آن پشتیبانی کند.
برای iOS، Safari از تابع media -webkit-text-size-adjust پشتیبانی میکند، اما media query مستقیم برای Bold Text ندارد. در Android، Chrome نیز media query برای تنظیم سیستمی متن ضخیم ارائه نمیدهد. به توسعهدهندگان وب توصیه میشود از prefers-contrast و prefers-reduced-motion برای تطبیق استفاده کنند و برای متن ضخیم — تنظیمات را از طریق User-Agent یا استایلهای جایگزین بررسی کنند.
Variable Fonts (OpenType Font Variations) امکان تنظیم روان ضخامت فونت را از طریق CSS font-weight در محدوده ۱–۹۹۹ با گام ۱ واحد فراهم میکنند. برخلاف فونتهای استاندارد که فقط مقادیر گسسته (۴۰۰، ۷۰۰) در دسترس هستند، variable fonts امکان انتخاب ضخامت بهینه برای هر کاربر را میدهند. در تنظیمات دسترسیپذیری میتوان از محدوده گستردهتری استفاده کرد.
/* فونت متغیر با تنظیم روان ضخامت */
@font-face {
font-family: "Inter Variable";
src: url("/fonts/Inter-Variable.woff2")
format("woff2-variations");
font-weight: 100 900;
font-stretch: 50% 200%;
}
/* تطبیق با Bold Text سیستمی از طریق کلاس */
.bold-text-enabled {
--font-weight-body: 500;
--font-weight-heading: 700;
}
.bold-text-enabled .text-body {
font-weight: var(--font-weight-body);
}
.bold-text-enabled .text-heading {
font-weight: var(--font-weight-heading);
}
/* prefers-contrast: more — رویکرد جایگزین */
@media (prefers-contrast: more) {
.content {
--font-weight-increase: 100;
}
.content .text {
font-weight: calc(
var(--font-weight-base) +
var(--font-weight-increase)
);
}
}در مثال CSS اتصال فونت متغیر Inter Variable، متغیرهای CSS برای کنترل ضخامت و تطبیق از طریق prefers-contrast: more نشان داده شده است. Variable fonts امکان افزایش font-weight به میزان ۵۰–۱۰۰ واحد را با Bold Text سیستمی فعال بدون افت کیفیت رندر فراهم میکنند. برای تعیین وضعیت Bold Text در سمت کلاینت میتوان از بررسی JavaScript User-Agent و کلاس روی عنصر html استفاده کرد.
از آنجا که CSS media query مستقیم برای Bold Text ارائه نمیدهد، توسعهدهندگان وب از JavaScript استفاده میکنند: یک عنصر نامرئی با فونت شناخته شده ایجاد میکنند، عرض آن را اندازهگیری میکنند، font-weight را تغییر میدهند و تفاوت را مقایسه میکنند. اگر تفاوت بیشتر از حد انتظار باشد — احتمالاً Bold Text سیستمی فعال است. این روش در کتابخانههای دسترسیپذیری برای تنظیم خودکار استایلها استفاده میشود.
Bold Text مشکلات خاص کاربران با اختلالات بینایی را حل میکند: تمایز نمادها را در آمبلیوپی افزایش میدهد، خستگی چشم را در خواندن طولانی کاهش میدهد و کنتراست پایین نمایشگر را در آفتاب روشن جبران میکند. بر اساس WebAIM Million (۲۰۲۵)، ۱۲.۳٪ از تمام صفحات متنی با کنتراست ناکافی دارند — Bold Text میتواند این نقص را در سمت کاربر جبران کند.
برای توسعهدهنده، پشتیبانی از Bold Text در الزامات WCAG ۲.۲ وارد میشود: معیار ۱.۴.۱ (Use of Color) و ۱.۴.۳ (Contrast Minimum). برنامه باید با تنظیم سیستمی Bold Text فعال بدون از دست دادن محتوا، همپوشانی عناصر یا بریده شدن متن به درستی نمایش داده شود. آزمایش با Bold Text فعال هنگام آمادهسازی برای انتشار در App Store و Google Play الزامی است.
هنگام آزمایش برنامه با Bold Text بررسی کنید: آیا تمام عناصر متنی به طور کامل (بدون بریدگی) نمایش داده میشوند، آیا ضخامت تکراری نیست (double-bold)، آیا ارتفاع سلولها در جداول به درستی محاسبه میشود، آیا عناصر نسبت به یکدیگر جابجا نمیشوند. از Accessibility Inspector (Xcode) یا Accessibility Scanner (Android) برای تشخیص خودکار مشکلات با Bold Text استفاده کنید.
iOS و Android مدرن Bold Text را به سمت تنظیمات دقیقتر توسعه میدهند: iOS ۱۸ (۲۰۲۴) تنظیمات فونت به تفکیک برنامه از جمله ضخامت را اضافه کرد و Android ۱۶ (۲۰۲۵) API font_weight_adjustment را برای توسعهدهندگان گسترش داد. انتظار میرود نسخههای آینده media query CSS برای Bold Text در اختیار توسعهدهندگان وب قرار دهند و نیاز به JS-detection را برطرف کنند.
سوالات متداول
Bold Text در iOS — یک ویژگی دسترسیپذیری است که فونت سیستمی را در تمام عناصر رابط به ضخیم تغییر میدهد. در Settings > Display & Brightness > Bold Text فعال میشود. پس از فعالسازی نیاز به راهاندازی مجدد iPhone است. این ویژگی بر برنامههای سیستمی و شخص ثالث که از فونت استاندارد San Francisco استفاده میکنند تأثیر میگذارد.
برای بررسی Bold Text در iOS از ویژگی استاتیک UIAccessibility.isBoldTextEnabled که Bool برمیگرداند استفاده کنید. برای ردیابی تغییرات در اعلان UIAccessibility.boldTextStatusDidChangeNotification مشترک شوید. هنگام تغییر، فونتها را در رابط بهروز کنید — برای جداول reloadData() و برای نمایشهای سفارشی invalidateIntrinsicContentSize() را فراخوانی کنید.
در Android مشابه Bold Text «خوانایی بهبودیافته» نامیده میشود و در تنظیمات > دسترسیپذیری > متن > خوانایی بهبودیافته قرار دارد. در دستگاههای Samsung One UI این ویژگی «متن با کنتراست بالا» نامیده میشود. تنظیمات Typeface سیستمی را تغییر میدهد و فونت را در تمام عناصر رابط و برنامههای شخص ثالث ضخیم میکند.
CSS font-weight — ویژگی صفحات وب است که ضخامت فونت را کنترل میکند (normal = ۴۰۰، bold = ۷۰۰). Bold Text سیستمی مستقیماً به CSS منتقل نمیشود — هیچ media query برای این سیگنال وجود ندارد. توسعهدهندگان وب از تشخیص JavaScript از طریق اندازهگیری عرض فونت یا تابع CSS prefers-contrast: more به عنوان جایگزین غیرمستقیم استفاده میکنند.
Bold Text خوانایی را برای افراد با آمبلیوپی، پیرچشمی و دیسلکسی بهبود میبخشد. فونت ضخیم کنتراست نمادها را روی صفحه بدون تغییر اندازه متن افزایش میدهد. این ویژگی کنتراست پایین نمایشگر را در آفتاب جبران میکند و خستگی چشم را در خواندن طولانی کاهش میدهد. Bold Text در توصیههای WCAG ۲.۲ برای تضمین دسترسیپذیری گنجانده شده است.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید