به روزترین اخبار فناوری

صدای وب
کارهای من
آخرین نظرات
  • ۱
  • ۰

The Great Gatsby

 

مشکل متون هم‌تراز در وب

هم‌ترازی متون به این شکل صورت می‌گیره که بین کلمات داخل خط فاصله‌های اضافی قرار می‌گیره تا انتهای خط با خط‌های دیگه تو یک راستا قرار بگیرن. برای چاپ معمولا متون با نرم‌افزارهایی مثل Microsoft Word, Pages یا Adobe InDesign آماده می‌شن که امکانات زیادی برای هم‌تراز کردن متن دارن و لازم نیست که حتما فاصله‌های زیادی بین کلمات اضافه بشه که خوندن اون‌ها رو مشکل کنه، و از تکنیک‌هایی مثل Hyphenation (خط تیره گذاری) برای هم‌تراز کردن استفاده می‌کنن که در بیشترشون در وب قابل استفاده نیستن.

ولی مرورگرها برای هم‌تراز کردن متن بین حروف کلمات فاصله‌های اضافی قرار می‌دن. توی تصویر زیر فاصله‌هایی که توسط مرورگر اضافه شدن رو با رنگ زرد مشخص کردم.

Browser Justification

این فاصله‌های اضافی توی متن باعث می‌شن که چشم کاربر برای خوندن مطالب بیشتر خسته بشه و سخت‌تر بتونه صفحه رو مرور (Scan) بکنه. تصویر بالا بهترین حالت هم‌تراز کردن توسط مرورگر هست که درون فاصله‌های خیلی کمی اضافی شده به متن. ولی همه مرورگرها با متون مثل هم رفتار نمی‌کنن و بعضی‌ها توی شرایط مختلف فاصله‌های بیشتری رو به متن اضافه می‌کنن. اندازه و نوع فونت هم توی این فاصله‌گذاری تاثیر داره. هرچی این فاصله‌ها بیشتر بشن چشم کاربر بیشتر خسته می‌شه و متن با ظاهر بدتری نمایش داده می‌شه.

همچنین شما باید به این موضوع دقت کنید که کاربرای شما همیشه بینایی قوی ندارن و ممکن هست افراد کم‌بینا و دارای مشکلات بینایی یا با ناتوانی Dyslexia (خوانش‌پریشی) به وب‌سایت شما مراجعه کنن و سعی کنن مطالبتون رو مطالعه کنن، در این صورت این فضاهای خالی موجود در متن (White Space Rivers) مشکلات زیادی رو برای اون‌ها به وجود میارن. شما به عنوان طراح هیچ کنترلی روی مقدار فضاهای خالی‌ای که بین کلمات اضافه می‌شن ندارید.

برای همین بهتر هست در بیشتر مواقع متن رو فقط راست‌چین (برای فارسی) یا چپ‌چین (برای لاتین) کنید و از هم‌تراز کردن متن از دو طرف خود داری کنید. درسته که اینطوری متون تقارن کمتری دارن ولی فاصله‌های اضافی در متن وجود نداره:

Left Aligned

یک راه‌حل

اگه با توجه به توضیحات بالا، هنوز اصرار بر این داشتید که از هم‌ترازی متون استفاده کنید، بهتر هست که از Hyphenation که بالاتر در موردش توضیح دادم استفاده کنید. بیشتر مرورگرها به طور پیش‌فرض از این قابلیت پشتیبانی نمی‌کنن ولی این قابلیت به CSS3 اضافه شده و انتظار میره که مرورگرها به تدریج اون رو پیاده‌سازی کنن. پشتیبانیش درحال حاضر خیلی ضعیف هست و فقط اینترنت اکسپلورر ۱۰، فایرفاکس ۶ و سافاری ۵.۱ و بالاتر این قابلیت رو پیاده‌سازی کردن.

ولی خب تا زمانی که همه مرورگرها ازش پشتیبانی کنن، می‌تونید از ابزارهای جاواسکریپتی مثل Hyphenator وHypher که همین قابلیت رو پیاده‌سازی می‌کنن استفاده کنید. هردوی این ابزارها بعد از اینکه صفحه بارگزاری شد، متون رو اصلاح می‌کنن و در واقع کاری می‌کنن که هم‌تراز کردن متن‌ها بدون اضافه کردن فاصله صورت بگیره. به این شکل:

JS Hyphenation

همونطور که می‌بینید انتهای ۳ خط علامت خط تیره (dash) گذاشته شده و کلمات از وسط شکسته شدن و ادامشون رفته به خط بعد. لطفا به این نکته توجه کنید که هیچ‌کدوم از ابزارهای جاواسکریپتی توانایی Hyphenate کردن متون زبان فارسی به درستی رو ندارن. چون توی زبان فارسی برخلاف زبان‌های لاتین، از علامت خط تیره برای هم‌تراز کردن متون استفاده نمی‌شه. چون خط فارسی یک خط پیوسته هست و حروف به همدیگه می‌چسبن، نرم‌افزارهای پردازشگر متن برای هم‌تراز کردن متن از کشیدن حروف «بـــه ایــن صــورت» استفاده می‌کنن که انتهای هر خط با خط‌های دیگه هم‌تراز بشه و این امکان هنوز در وب وجود نداره (یا اگر داره من ازش بی‌اطلاعم). متن زیر از «چهل نامه کوتاه به همسرم – نادر ابراهیمی» انتخاب شده:

RTL Justification

در حال حاضر فقط ابزارهای پردازش متنی (که بالاتر توضیح دادم) و گرافیکی (مثل فوتوشاپ) این امکان رو دارن.

در هر صورت، پیشنهاد من این هست که متون رو تاجایی که امکان داره هم‌تراز نکنید که هم خوانایی بیشتری داشته باشن و هم ماهیت پویا (داینامیک) وب حفظ بشه. وب مثل چاپ ایستا نیست و دائم در حال تغییر هست و هیچ‌چیز در وب قابل پیش‌بینی نیست. نه تکنولوژی‌هایی که کاربرهامون ازون‌ها استفاده می‌کنن نه رفتار خود کاربرها.

موفق باشید.

منبع:http://sallar.me

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی