بیاموزید چگونه با استفاده از ارتقاء تدریجی و تشخیص قابلیت، اپلیکیشنهای وب قوی و دسترسپذیر بسازید. این راهنما دیدگاهی جهانی، مثالهای عملی و بهترین شیوهها را برای ایجاد تجربیات وب فراگیر و آیندهنگر ارائه میدهد.
ارتقاء تدریجی: تشخیص قابلیت - ساخت تجربیات وب تابآور برای مخاطبان جهانی
در چشمانداز همواره در حال تحول اینترنت، اطمینان از اینکه اپلیکیشنهای وب شما دسترسپذیر، کارآمد و آیندهنگر هستند، امری حیاتی است. یکی از مؤثرترین استراتژیها برای دستیابی به این هدف، ارتقاء تدریجی است؛ یک فلسفه طراحی که بر ساخت قابلیتهای اصلی که در طیف وسیعی از دستگاهها و مرورگرها کار میکنند، تأکید دارد و در عین حال، بر اساس تواناییهای محیط کاربر، بهبودهایی را اضافه میکند. یک جزء حیاتی از ارتقاء تدریجی، تشخیص قابلیت است که به توسعهدهندگان اجازه میدهد قبل از پیادهسازی یک ویژگی خاص، پشتیبانی مرورگر از آن را تعیین کنند. این رویکرد یک تجربه کاربری یکپارچه را تضمین میکند، بهویژه در چشمانداز فناوری متنوع در سراسر جهان.
ارتقاء تدریجی چیست؟
ارتقاء تدریجی یک استراتژی توسعه وب است که با یک پایه محکم و دسترسپذیر شروع میشود و سپس ویژگیهای پیشرفته را بر اساس توانایی مرورگر یا دستگاه اضافه میکند. این رویکرد، محتوا و قابلیتهای اصلی را برای همه کاربران، صرفنظر از دستگاه، مرورگر یا اتصال اینترنت آنها، در اولویت قرار میدهد. این ایده را در بر میگیرد که وب باید برای همه، در همه جا، قابل استفاده و آموزنده باشد.
اصول اصلی ارتقاء تدریجی عبارتند از:
- اولویت با محتوا: پایه و اساس وبسایت شما باید HTML با ساختار خوب و معنایی صحیح باشد که محتوای اصلی را ارائه میدهد.
- قابلیتهای اصلی: اطمینان حاصل کنید که قابلیتهای ضروری بدون فعال بودن جاوا اسکریپت یا با پشتیبانی پایهای CSS کار میکنند. این امر قابلیت استفاده را حتی در ابتداییترین محیطهای مرور تضمین میکند.
- بهبودها بر اساس قابلیتها: ویژگیهای پیشرفته مانند تعاملات مبتنی بر جاوا اسکریپت، انیمیشنهای CSS یا عناصر مدرن HTML5 را فقط در صورتی اضافه کنید که مرورگر کاربر از آنها پشتیبانی کند.
- دسترسپذیری: از ابتدا با در نظر گرفتن دسترسپذیری طراحی کنید. اطمینان حاصل کنید که وبسایت شما برای افراد دارای معلولیت قابل استفاده است و از استانداردهای WCAG (دستورالعملهای دسترسپذیری محتوای وب) پیروی میکند.
چرا تشخیص قابلیت ضروری است
تشخیص قابلیت سنگ بنای ارتقاء تدریجی است. به جای تکیه بر تشخیص مرورگر (شناسایی مرورگر کاربر بر اساس رشته عامل کاربر آن)، تشخیص قابلیت بر روی آنچه مرورگر *میتواند* انجام دهد تمرکز دارد. این یک رویکرد بسیار قابل اعتمادتر است زیرا:
- تفاوتهای مرورگرها: مرورگرهای مختلف ویژگیها را به طور متفاوتی تفسیر و پیادهسازی میکنند. تشخیص قابلیت به شما امکان میدهد کد خود را با تواناییهای هر مرورگر تطبیق دهید.
- آیندهنگری: با تکامل مرورگرها، ویژگیهای جدیدی به طور مداوم معرفی میشوند. تشخیص قابلیت به اپلیکیشن شما اجازه میدهد تا با این تغییرات سازگار شود بدون اینکه نیاز به تغییر کد برای مرورگرهای قدیمیتر داشته باشد.
- مدیریت تنظیمات کاربر: کاربران میتوانند برخی از ویژگیهای مرورگر (مانند جاوا اسکریپت یا انیمیشنهای CSS) را غیرفعال کنند. تشخیص قابلیت به شما امکان میدهد با تطبیق با تنظیمات انتخابی کاربر، به ترجیحات او احترام بگذارید.
- عملکرد: از بارگذاری کد و منابع غیرضروری در صورتی که مرورگر کاربر از یک ویژگی خاص پشتیبانی نمیکند، خودداری کنید. این امر زمان بارگذاری صفحه را بهبود بخشیده و تجربه کاربری را بهتر میکند.
روشهای تشخیص قابلیت
چندین روش برای تشخیص ویژگیهای مرورگر وجود دارد که هر کدام نقاط قوت و ضعف خود را دارند. رایجترین روش از جاوا اسکریپت برای بررسی وجود یک ویژگی یا API خاص استفاده میکند.
۱. استفاده از جاوا اسکریپت برای بررسی قابلیتها
این روش رایجترین و انعطافپذیرترین است. شما با استفاده از کد جاوا اسکریپت، در دسترس بودن یک ویژگی خاص مرورگر را بررسی میکنید.
مثال: بررسی API `fetch` (جاوا اسکریپت برای دریافت داده از شبکه)
if ('fetch' in window) {
// API 'fetch' پشتیبانی میشود. از آن برای بارگذاری دادهها استفاده کنید.
fetch('data.json')
.then(response => response.json())
.then(data => {
// پردازش دادهها
})
.catch(error => {
// مدیریت خطاها
});
} else {
// API 'fetch' پشتیبانی نمیشود. از یک جایگزین مانند XMLHttpRequest استفاده کنید.
var xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
// پردازش دادهها
} else {
// مدیریت خطاها
}
};
xhr.onerror = function() {
// مدیریت خطاها
};
xhr.send();
}
در این مثال، کد بررسی میکند که آیا ویژگی `fetch` در شیء `window` وجود دارد یا خیر. اگر وجود داشته باشد، مرورگر از API `fetch` پشتیبانی میکند و کد میتواند از آن استفاده کند. در غیر این صورت، یک مکانیزم جایگزین (با استفاده از `XMLHttpRequest`) پیادهسازی میشود.
مثال: بررسی پشتیبانی از API `classList`
if ('classList' in document.body) {
// مرورگر از classList پشتیبانی میکند. از متدهای classList استفاده کنید (مثلاً add, remove)
document.body.classList.add('has-js');
} else {
// مرورگر از classList پشتیبانی نمیکند. از روشهای جایگزین استفاده کنید.
// مثلاً، استفاده از دستکاری رشته برای افزودن و حذف کلاسهای CSS
document.body.className += ' has-js';
}
۲. استفاده از کوئریهای قابلیت CSS (@supports)
کوئریهای قابلیت CSS، که با قاعده `@supports` مشخص میشوند، به شما امکان میدهند قوانین CSS را بر اساس اینکه آیا مرورگر از ویژگیها یا مقادیر خاص CSS پشتیبانی میکند یا خیر، اعمال کنید.
مثال: استفاده از `@supports` برای استایلدهی یک چیدمان با استفاده از Grid Layout
.container {
display: flex; /* جایگزین برای مرورگرهایی که گرید ندارند */
}
@supports (display: grid) {
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
}
در این مثال، `.container` در ابتدا از چیدمان `flex` (یک ویژگی با پشتیبانی گسترده) استفاده میکند. قاعده `@supports` بررسی میکند که آیا مرورگر از `display: grid` پشتیبانی میکند یا خیر. اگر پشتیبانی کند، استایلهای درون این قاعده اعمال میشوند و چیدمان اولیه flex را با یک چیدمان grid جایگزین میکنند.
۳. کتابخانهها و فریمورکها
چندین کتابخانه و فریمورک، قابلیتهای داخلی تشخیص قابلیت یا ابزارهایی را ارائه میدهند که این فرآیند را ساده میکنند. اینها میتوانند پیچیدگی بررسی ویژگیهای خاص را پنهان کنند. نمونههای رایج عبارتند از:
- Modernizr: یک کتابخانه محبوب جاوا اسکریپت که طیف وسیعی از ویژگیهای HTML5 و CSS3 را تشخیص میدهد. این کتابخانه کلاسهایی را به عنصر `` اضافه میکند و به شما امکان میدهد بر اساس پشتیبانی از ویژگی، استایلها را اعمال کرده یا جاوا اسکریپت را اجرا کنید.
- پلیفیلها (Polyfills): نوعی کد که یک جایگزین برای یک ویژگی مرورگر غایب فراهم میکند. آنها اغلب در ترکیب با تشخیص قابلیت برای آوردن قابلیتهای مدرن به مرورگرهای قدیمیتر استفاده میشوند.
مثال: استفاده از Modernizr
<html class="no-js" >
<head>
<!-- سایر متا تگها و غیره. -->
<script src="modernizr.min.js"></script>
</head>
<body>
<div class="my-element"></div>
<script>
if (Modernizr.borderradius) {
// اعمال استایلهای border-radius
document.querySelector('.my-element').style.borderRadius = '10px';
}
</script>
</body>
</html>
در این سناریو، Modernizr اگر مرورگر از `border-radius` پشتیبانی کند، کلاس `borderradius` را به عنصر `` اضافه میکند. سپس کد جاوا اسکریپت این کلاس را بررسی کرده و استایل مربوطه را اعمال میکند.
مثالهای عملی و ملاحظات جهانی
بیایید چند مثال عملی از تشخیص قابلیت و نحوه پیادهسازی آنها را با در نظر گرفتن ملاحظات جهانی مانند دسترسپذیری، بینالمللیسازی (i18n) و عملکرد بررسی کنیم.
۱. تصاویر واکنشگرا
تصاویر واکنشگرا برای ارائه اندازههای بهینه تصویر بر اساس دستگاه و اندازه صفحه کاربر ضروری هستند. تشخیص قابلیت میتواند نقش مهمی در پیادهسازی مؤثر آنها داشته باشد.
مثال: بررسی پشتیبانی از `srcset` و `sizes`
`srcset` و `sizes` ویژگیهای HTML هستند که اطلاعاتی در مورد گزینههای منبع تصویر به مرورگر ارائه میدهند و به آن امکان میدهند مناسبترین تصویر را برای زمینه فعلی انتخاب کند.
<img
src="image-fallback.jpg"
srcset="image-small.jpg 480w, image-medium.jpg 768w, image-large.jpg 1024w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 50vw, 33vw"
alt="توضیحات تصویر"
>
ویژگی `srcset` لیستی از منابع تصویر را با عرض آنها مشخص میکند. ویژگی `sizes` اطلاعاتی در مورد اندازه نمایش مورد نظر تصویر بر اساس کوئریهای رسانه ارائه میدهد.
اگر مرورگر از `srcset` و `sizes` پشتیبانی نکند، میتوانید از جاوا اسکریپت و تشخیص قابلیت برای دستیابی به نتیجه مشابه استفاده کنید. کتابخانههایی مانند `picturefill` یک پلیفیل برای مرورگرهای قدیمیتر فراهم میکنند.
if (!('srcset' in document.createElement('img')) || !('sizes' in document.createElement('img'))) {
// از یک پلیفیل مانند picturefill.js استفاده کنید
// لینک به picturefill: https://scottjehl.github.io/picturefill/
console.log('در حال استفاده از پلیفیل picturefill');
}
این رویکرد تضمین میکند که همه کاربران، صرفنظر از مرورگرشان، تصاویر بهینهسازی شده دریافت کنند.
۲. انیمیشنهای وب
انیمیشنها و ترنزیشنهای CSS میتوانند تجربه کاربری را به طور قابل توجهی بهبود بخشند، اما همچنین میتوانند برای برخی کاربران حواسپرتکن یا مشکلساز باشند. تشخیص قابلیت به شما امکان میدهد این انیمیشنها را فقط در مواقع مناسب ارائه دهید.
مثال: تشخیص پشتیبانی از ترنزیشنها و انیمیشنهای CSS
if (Modernizr.cssanimations && Modernizr.csstransitions) {
// اعمال کلاسهای انیمیشن
document.body.classList.add('animations-enabled');
} else {
// استفاده از یک رابط کاربری ثابت یا یک تجربه پایهایتر بدون انیمیشن
document.body.classList.add('animations-disabled');
}
با غیرفعال کردن انیمیشنها برای کاربرانی که مرورگرهای قدیمیتر دارند یا زمانی که کاربر ترجیح خود را برای کاهش حرکت بیان کرده است (از طریق کوئری رسانه `prefers-reduced-motion`)، میتوانید تجربهای روانتر و فراگیرتر ارائه دهید.
ملاحظات جهانی برای انیمیشنها: در نظر داشته باشید که برخی از کاربران ممکن است اختلالات دهلیزی یا شرایط دیگری داشته باشند که میتواند توسط انیمیشنها تحریک شود. همیشه گزینهای برای غیرفعال کردن انیمیشنها فراهم کنید. به تنظیم `prefers-reduced-motion` کاربر احترام بگذارید.
۳. اعتبارسنجی فرم
HTML5 ویژگیهای قدرتمند اعتبارسنجی فرم را معرفی کرد، مانند فیلدهای الزامی، اعتبارسنجی نوع ورودی (مانند ایمیل، شماره) و پیامهای خطای سفارشی. تشخیص قابلیت به شما امکان میدهد از این ویژگیها بهرهمند شوید و در عین حال جایگزینهای مناسبی ارائه دهید.
مثال: بررسی پشتیبانی از اعتبارسنجی فرم HTML5
if ('checkValidity' in document.createElement('input')) {
// استفاده از اعتبارسنجی فرم HTML5.
// این ویژگی داخلی است و نیازی به جاوا اسکریپت ندارد
} else {
// پیادهسازی اعتبارسنجی فرم مبتنی بر جاوا اسکریپت.
// کتابخانهای مانند Parsley.js میتواند مفید باشد:
// https://parsleyjs.org/
}
این امر تضمین میکند که کاربران با مرورگرهای قدیمیتر همچنان اعتبارسنجی فرم را دریافت میکنند، حتی اگر با استفاده از جاوا اسکریپت پیادهسازی شده باشد. ارائه اعتبارسنجی سمت سرور را به عنوان لایه نهایی امنیت و استحکام در نظر بگیرید.
ملاحظات جهانی برای اعتبارسنجی فرم: اطمینان حاصل کنید که پیامهای خطای شما بومیسازی شده و دسترسپذیر هستند. پیامهای خطای واضح و مختصر را به زبان کاربر ارائه دهید. نحوه استفاده از فرمتهای مختلف تاریخ و عدد را در سطح جهانی در نظر بگیرید.
۴. تکنیکهای چیدمان پیشرفته (مانند CSS Grid)
CSS Grid Layout روشی قدرتمند برای ایجاد چیدمانهای پیچیده و واکنشگرا فراهم میکند. با این حال، مهم است که اطمینان حاصل شود مرورگرهای قدیمیتر به خوبی مدیریت میشوند.
مثال: استفاده از CSS Grid با یک جایگزین
.container {
display: flex; /* جایگزین برای مرورگرهای قدیمیتر */
flex-wrap: wrap;
}
@supports (display: grid) {
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
}
این کد از `flexbox` به عنوان یک جایگزین برای مرورگرهایی که از `grid` پشتیبانی نمیکنند، استفاده میکند. اگر مرورگر از `grid` پشتیبانی کند، چیدمان با استفاده از گرید رندر میشود. این رویکرد یک چیدمان واکنشگرا ایجاد میکند که در مرورگرهای قدیمیتر به خوبی تنزل مییابد.
ملاحظات جهانی برای چیدمان: برای اندازههای مختلف صفحه، نسبتهای تصویر و روشهای ورودی (مانند صفحههای لمسی، ناوبری با صفحهکلید) طراحی کنید. چیدمانهای خود را بر روی دستگاهها و مرورگرهای مختلفی که در سطح جهانی استفاده میشوند، آزمایش کنید. اگر مخاطبان هدف شما شامل کاربرانی هستند که اسکریپتهای راست-به-چپ (RTL) میخوانند (مانند عربی، عبری)، پشتیبانی از زبان RTL را در نظر بگیرید.
بهترین شیوهها برای تشخیص قابلیت
برای به حداکثر رساندن اثربخشی تشخیص قابلیت، به این بهترین شیوهها پایبند باشید:
- اولویتبندی محتوا و قابلیتها: همیشه اطمینان حاصل کنید که محتوا و قابلیتهای اصلی بدون جاوا اسکریپت یا با حداقل استایلدهی کار میکنند.
- به تشخیص مرورگر تکیه نکنید: از تشخیص مرورگر خودداری کنید، زیرا غیرقابل اعتماد و مستعد خطا است. تشخیص قابلیت یک رویکرد برتر است.
- به طور کامل تست کنید: پیادهسازیهای تشخیص قابلیت خود را در طیف وسیعی از مرورگرها و دستگاهها، از جمله نسخههای قدیمیتر و دستگاههای تلفن همراه، آزمایش کنید. از ابزارهای توسعهدهنده مرورگر برای شبیهسازی عاملهای کاربری و شرایط شبکه مختلف استفاده کنید. تست بین مرورگری برای مخاطبان جهانی ضروری است.
- از کتابخانهها هوشمندانه استفاده کنید: زمانی که کتابخانههای تشخیص قابلیت و پلیفیلها فرآیند را ساده میکنند و به خوبی نگهداری میشوند، از آنها استفاده کنید. با این حال، از اتکای بیش از حد خودداری کنید، زیرا میتوانند به اندازه فایل و پیچیدگی وبسایت شما اضافه کنند. تأثیر آنها بر عملکرد را به دقت ارزیابی کنید.
- کد خود را مستند کنید: کد تشخیص قابلیت خود را به وضوح مستند کنید و توضیح دهید که چرا یک ویژگی خاص را تشخیص میدهید و از چه استراتژی جایگزینی استفاده میکنید. این به نگهداری و همکاری کمک میکند.
- ترجیحات کاربر را در نظر بگیرید: به ترجیحات کاربر، مانند کوئری رسانه `prefers-reduced-motion`، احترام بگذارید.
- عملکرد را در اولویت قرار دهید: تشخیص قابلیت میتواند با جلوگیری از بارگذاری کد غیرضروری، عملکرد را بهبود بخشد. به تأثیر منطق تشخیص خود بر زمان بارگذاری صفحه توجه داشته باشید.
- ساده نگه دارید: منطق تشخیص قابلیت بیش از حد پیچیده میتواند نگهداری آن را دشوار کند. تشخیص قابلیت خود را تا حد امکان ساده و مستقیم نگه دارید.
پرداختن به دسترسپذیری (a11y) در تشخیص قابلیت
دسترسپذیری یک جزء حیاتی از ارتقاء تدریجی است. تشخیص قابلیت میتواند به اطمینان از دسترسپذیر بودن وبسایت شما برای کاربران دارای معلولیت کمک کند.
- ارائه جایگزینها: اگر یک ویژگی پشتیبانی نمیشود، یک جایگزین دسترسپذیر ارائه دهید. به عنوان مثال، اگر از انیمیشنهای CSS استفاده میکنید، راهی برای غیرفعال کردن آنها فراهم کنید (مثلاً با استفاده از کوئری رسانه `prefers-reduced-motion`).
- استفاده از ویژگیهای ARIA: از ویژگیهای ARIA (اپلیکیشنهای اینترنتی غنی دسترسپذیر) برای افزایش دسترسپذیری محتوای پویا و عناصر رابط کاربری خود استفاده کنید. ARIA اطلاعات معنایی را برای فناوریهای کمکی مانند صفحهخوانها فراهم میکند.
- اطمینان از ناوبری با صفحهکلید: اطمینان حاصل کنید که تمام عناصر تعاملی با استفاده از صفحهکلید قابل دسترسی هستند. وبسایت خود را با صفحهکلید آزمایش کنید تا تأیید کنید که کاربران میتوانند با تمام ویژگیها پیمایش کرده و تعامل داشته باشند.
- ارائه HTML معنایی: از عناصر HTML معنایی (مانند <nav>، <article>، <aside>) برای ایجاد ساختار برای محتوای خود استفاده کنید، که درک آن را برای فناوریهای کمکی آسانتر میکند.
- تست با صفحهخوانها: به طور منظم وبسایت خود را با صفحهخوانها آزمایش کنید تا اطمینان حاصل کنید که کاربران دارای اختلالات بینایی میتوانند به محتوا و قابلیتهای شما دسترسی داشته باشند.
- پیروی از دستورالعملهای WCAG: از WCAG (دستورالعملهای دسترسپذیری محتوای وب) پیروی کنید تا اطمینان حاصل کنید که وبسایت شما با استانداردهای دسترسپذیری مطابقت دارد.
بینالمللیسازی (i18n) و تشخیص قابلیت
هنگام ساخت یک وبسایت جهانی، i18n را در نظر بگیرید. تشخیص قابلیت میتواند با تسهیل محتوا و رفتار خاص زبان به تلاشهای i18n شما کمک کند.
- تشخیص ترجیحات زبان: زبان ترجیحی کاربر را با استفاده از ویژگی `navigator.language` یا با بازرسی هدر `Accept-Language` ارسال شده توسط مرورگر تشخیص دهید. از این اطلاعات برای بارگذاری فایلهای زبان مناسب یا ترجمه پویای محتوا استفاده کنید.
- استفاده از تشخیص قابلیت برای بومیسازی: پشتیبانی از ویژگیهایی مانند قالببندی تاریخ و زمان، قالببندی اعداد و قالببندی ارز را تشخیص دهید. از کتابخانههای مناسب یا APIهای بومی مرورگر برای قالببندی صحیح محتوا بر اساس منطقه کاربر استفاده کنید. بسیاری از کتابخانههای جاوا اسکریپت برای i18n، مانند `i18next`، از تشخیص قابلیت استفاده میکنند.
- تطبیق چیدمانها برای زبانهای RTL: از تشخیص قابلیت برای تشخیص زبان کاربر استفاده کنید و چیدمان خود را بر این اساس برای زبانهای راست-به-چپ (RTL) تنظیم کنید. به عنوان مثال، ممکن است از ویژگی `dir` بر روی عنصر `` برای تغییر جهت متن و چیدمان استفاده کنید.
- در نظر گرفتن قراردادهای فرهنگی: به قراردادهای فرهنگی مربوط به تاریخ، زمان و ارزها توجه کنید. اطمینان حاصل کنید که وبسایت شما این اطلاعات را به روشی قابل درک و مناسب برای منطقه کاربر نمایش میدهد.
نتیجهگیری: ساختن برای آینده
ارتقاء تدریجی و تشخیص قابلیت صرفاً شیوههای فنی نیستند؛ آنها اصول اساسی توسعه وب هستند که شما را قادر میسازند تا تجربیات وب فراگیر، کارآمد و تابآور برای مخاطبان جهانی ایجاد کنید. با پذیرش این استراتژیها، میتوانید وبسایتهایی بسازید که با چشمانداز فناوری در حال تغییر سازگار میشوند و اطمینان میدهند که محتوای شما برای همه کاربران، صرفنظر از دستگاه، مرورگر یا مکان آنها، دسترسپذیر و جذاب است. با تمرکز بر قابلیتهای اصلی، پذیرش تشخیص قابلیت و اولویتبندی دسترسپذیری، شما یک تجربه وب قویتر و کاربرپسندتر برای همه ایجاد میکنید.
با ادامه تکامل وب، اهمیت ارتقاء تدریجی تنها افزایش خواهد یافت. با اتخاذ این شیوهها امروز، شما در آینده اپلیکیشنهای وب خود سرمایهگذاری میکنید و موفقیت آنها را در اکوسیستم دیجیتال جهانی تضمین میکنید.
اقدامات کاربردی:
- با یک پایه محکم شروع کنید: محتوای اصلی وبسایت خود را با استفاده از HTML معنایی بسازید.
- از تشخیص قابلیت استقبال کنید: از جاوا اسکریپت و کوئریهای قابلیت CSS برای بهبود تجربه کاربری خود استفاده کنید.
- دسترسپذیری را در اولویت قرار دهید: وبسایت خود را از ابتدا با در نظر گرفتن دسترسپذیری طراحی کنید.
- به طور دقیق تست کنید: وبسایت خود را بر روی مرورگرها و دستگاههای مختلف، از جمله نسخههای قدیمیتر و دستگاههای تلفن همراه، آزمایش کنید.
- i18n را در نظر بگیرید: برای بینالمللیسازی وبسایت خود برنامهریزی کنید و اطمینان حاصل کنید که محتوای شما برای مخاطبان جهانی دسترسپذیر و مناسب است.