IE8 و استانداردهای وب

استاندارد

این روزها خبر (تقریبا) مسرت بخشی برای طراحان و توسعه دهندگان وب منتشر شده. خبر اجرای موفقیت آمیز آزمون Acid2 در IE8! اما آیا واقعا برای همه مسرت بخشه؟

سازگاری کامل با استانداردها و Backward Compatibility
اول اینکه ادعای تیم توسعه IE مبنی بر اجرای درست آزمون، به این معنی نیست که همه مشکلات IE برطرف شده باشه. همونطور که خودشون اشاره کردند، آزمون Acid2 همه جوانب استانداردهای وب رو پوشش نداده و اجرای صحیحش نمیتونه تضمینی برای انطباق کامل با استانداردها باشه.
IE مشکلات ریز و درشت بسیاری در موتور Rendering خودش داره که اصلاح برخی از این مشکلات به معنی از دست دادن Backward Compatibility هست که توسعه‌دهندگانش با امیدواری خبرش رو میدند.
مشکل IE فقط عدم پشتیبانی از استانداردها نیست. که این موارد به خودی خود مشکل آفرین نیستند. چون با اضافه شدن امکاناتی جدید به مرورگر، سایتهایی که قبلا بدون در نظر گرفتن این امکان طراحی شدند تغییری نخواهند کرد. مشکل، درست جایی شکل میگیره که IE طرز تفسیر و نمایش غلط و متضاد با استانداردها داره. این موارد (که کم هم نیستند) برای رفع شدن، Backward Compatibility را زیر سوال میبرند. چون سایتی که سابق بر این به اشتباه و غیر استاندارد، تنها متکی بر نمایش صحیح در IE از شکل خاصی از کدنویسی استفاده کرده، در نسخه جدید با تغییر رویه تفسیر و نمایش اون کد (استاندارد شدن تفسیر) به شکل دیگه‌ای نمایش داده میشه و باعث میشه به هم بریزه.
برای مثال، در IE نسخه 6 و قدیمی‌تر، قابلیت hover فقط برای عنصر لینک (a) تعریف شده بود. در حالی که در CSS2 برای هر عنصری میشه hover (و سایر pseudo selectorها) را تعریف کرد.
این قابلیت در IE7 اضافه شد. سایتهایی که قبل از انتشار IE7 طراحی شدند یا از hover برای عناصر غیر از لینک استفاده نکردند. یا در صورت استفاده جزئی و تزئینی بوده. همین سایتها با IE7 -که این قابلیت تازه اضافه شده را داره- اغلب مشکلی نخواهند داشت و شاید کمی بهتر هم به نظر برسند. اما همه موارد به این شکل نیست. خیلی از مشکلات IE نظیر box model، تفسیرهای نادرست float و موارد متعدد دیگری هستند که به سادگی و با حفظ سازگاری با نسخه‌های قبلی قابل اصلاح نیستند.
ممکنه بازهم توسعه دهندگان IE دست به شیرین‌کاری‌هایی مثل hasLayout یا Conditional Comments بزنند. اما به هر حال سایتهای غیر استاندارد قدیمی، (همونطور که با تغییرات اندک IE7 دیده شد) اغلب بدون تغییر، درست نمایش داده نمیشوند.

روند توسعه روبه‌جلو یا بازی تبلیغاتی؟
اما از جنبه دیگه‌ای هم میشه به این موضوع نگاه کرد. مایکروسافت طی سالهای اخیر به خاطر انحصار نسبی در بازار مرورگرها (سهم حدودا 90 درصدی) نیاز چندانی به رقابت و نوآوری در مرورگر قدیمی و کهنه و خارج از رده خودش (IE6) نمیدید. با ظهور فایرفاکس و فشارهای بیشتر شرکتهایی مثل Opera، مایکروسافت IE7 را به عنوان یک مُسکن موضعی منتشر کرد. چیزی که تقریبا میشه بهش مجموعه patchهای IE6 گفت! اما طی چند ماه اخیر اتفاقات دیگه‌ای افتاده که باعث شده مایکروسافت مجددا خودش را وارد جنگ مرورگرها بکنه و به هر ترفندی جایی بین رقبا باز کنه.
در نیمه نوامبر 2007 شرکت Apple نسخه جدید موتور Rendering مرورگر Safary، یعنی Webkit را معرفی کرد. با امکانات جدید و پیشرفت‌های زیادی در زمینه کیفیت و امنیت و انطباق با استانداردهای وب. در همین روزها اولین نسخه بتا از نسخه جدید مرورگر Firefox بنیاد Mozilla منتشر میشه. که همراه خودش امکانت جدید و بهبود چشمگیری در بازده و کیفیت داشته و همچنین موتور Renderingش را ارتقا داده. بعد از اینها به شکایت شرکت Opera از مایکروسافت میرسیم که درست چند روز قبل از اعلام خبر IE8 و Acid2 طرح شده.
شرکت Opera شکایتی در اتحادیه اروپا علیه مایکروسافت طرح کرده که به دو موضوع اصلی اشاره میکنه. یکی همان دعوای قدیمی برای جدا کردن IE از ویندوز یا حذف IE به عنوان مرورگر پیش‌فرض سیستم عامل مایکروسافت. و دیگری اعتراض به استاندارد نبودن مرورگر IE. هر چند که Opera مورد دوم (استانداردهای وب) را بهانه و دست آویزی برای پافشاری بر ادعای اول خودش قرار داده. ولی به هر حال عامل تحریک کننده مایکروسافت هست.
عده‌ای انتشار این خبر از جانب مدیر تیم توسعه IE را واکنشی مستقیم به شکایت Opera میدونند. که باعث میشه مایکروسافت در این دعوا در جایگاه بهتری قرار بگیره. ولی منهم مثل Joe Wilcox، عقیده دارم این اقدام مایکروسافت پاسخی به همه عوامل ریز و درشت جنگ مرورگرها بوده. در واقع ممکنه این ادعای تیم توسعه IE در حد یک بازی تبلیغاتی باشه یا حداقل در خوشبینانه ترین حالت منجر به تغییرات نه چندان اصولی مثل IE7 بشه. من قصدم این نیست که کل این موضوع را زیر سوال ببرم، بلکه فکر میکنم این ادعا (یا واکنش) کمی اغراق شده و آرمانیه، تا اجرا شده و دست یافتنی!

از IE8 هنوز هیچ جزئیاتی منتشر نشده و انتشار اولین نسخه بتای IE8 در نیمه اول سال 2008 وعده داده شده، چیزی که با توجه به سابقه مایکروسافت ممکنه به اواخر 2008 هم برسه. به همین خاطر هنوز نمیشه اطمینان داشت ادعای پشتیبانی از استانداردهای وب (یا حتی ادعای اجرای موفقیت آمیز Acid2) به واقعیت نزدیک باشه.
به هر حال آرزوی تمام طراحان وتوسعه دهندگان وب اینه که استانداردهای وب به طور گسترده در مرورگرها و ابزارهای طراحی پشتیبانی بشه تا مدت زمانی که همواره صرف رفع ایراد طراحی در مرورگرهای مختلف میشه، صرف پرداختن به خلاقیتها و نوآوری‌های طراح بشه.
من هم به امید اون روز، چشم به جنگ مرورگرها دارم. شاید روند کاهش کاربران IE یا شکایتها، قلقلکی به مایکروسافت بده. 🙂

9 دیدگاه در “IE8 و استانداردهای وب

  1. سلام
    مطلب بروز و جالبی بود. دست گذاشتی رو درد مشترک هممون ما که دیگه خسته شدیم از دست این IE! امروز یه صفحه redirect با html درست کردم آپلود کردم نیم ساعت دیگه زنگ زدن که آقا این با IE7 مشکل داره! جالب هم اینه که هیچ راهنمای درستی وجود نداره که آدم بتونه از روش بفهمه باید از چه المنتهایی استفاده کنه تا صفحه تو همه مرورگرها درست کار کنه! فقط باید تجربه کرد و هر چیزی رو که درست کردیم رو همه مرورگرها تست کنیم ماری که زمان زیادی میبره….

  2. amir

    marahele develop e IE8 too site e channel 9 hast mitoonin bebinin… ghabeliat entekhabe render e standard ya gheire standard ham ba gharar dadane yek Meta Tag soorat migire… Namayeshe IE8 ham too MIX08 soorat migireh

  3. اونطور که من خوندم همونطور که نظر دوم (امیرخان) اشاره کرده توی اینترنت اکسپلورر 8 لازمه یه تگ خاص توی صفحات گذاشته بشه تا مرورگر بفهمه برای نمایش صفحه باید از حالت مطابق با استاندارد استفاده کنه! وگر نه از حالت سازگار با اینترنت اکسپلوررهای قدیمی استفاده می‌کنه. البته همونطور که مشخصه این کار برای این انجام شده تا عرضه‌ی این مرورگر باعث نشه صدای اعتراض انبوهی از شرکتها و طراحان وبی که سایتهاشون را فقط با هدف نمایش درست توی مرورگر مایکروسافت طراحی شده بلند بشه.
    در هر صورت به عنوان تکلمه‌ای بر نوشته‌ی شما به نظرم بد نیست یه نگاهی هم به این نوشته بندازین:
    http://www.codethinked.com/post/2007/12/Why-a-standards-compliant-IE8-won't-really-mean-much.aspx
    نظر جالب داره: میگه اولاً بیشتر آدمهای فنی وب و اینترنت دارن از فایرفاکس استفاده می‌کنن، اما آدمهای غیرفنی که حتی مثلاً نمی‌دونن اسم مرورگرشون چیه طبق آماری که این آقا ارائه می‌کنه عرضه‌ی اینترنت اکسپلورر 7 خیلی روشون تأثیر نذاشته و هنوز آمار کاربرای نسخه‌ی 6 این مرورگر خیلی زیاده بنابراین عرضه نسخه‌ی 8 (تا زمانی که اجباراً داخل سیستم عامل گنجونده نشده باشه) در کوتاه مدت خیلی عامل مهم و تأثیرگذاری نیست.

  4. amir و حمیدرضا، از نظرتون ممنونم.
    این موضوع meta tag رو نمیدونستم. ولی به هر حال همونجور که حدس میزدم، بازهم یک شیرین‌کاری مثل قبلی هاست و مرورگر بدون اقدام اضافه (متا تگ یا هر چیز دیگه‌ای) از پس درست نشون دادن سایتهای غیر استاندارد قدیمی و سایتهای استاندارد جدید برنمیاد. (چون امکانش نیست.)
    اینکه دو نوع Rendering کاملا متفاوت داشته باشه و پیش فرض هم (اینطور که میگید) در حالت غیر استاندارد و سازگار با مرورگرهای قدیم باشه، راه حل سردستی و غیر حرفه‌ایه. و در نهایت به استاندارد شدن و تمیز شدن وب کمکی نمیکنه.

    حمیدرضا جان از مقاله‌ای که معرفی کردی هم ممنون. درسته و منهم قبول دارم کاربران آگاه و فنی اغلب مرورگری غیر از IE6 (یا حتی IE) استفاده میکنند.
    ولی به هر حال یک واقعیته که برای سایتهای غیر شخصی شما *باید* IE6 به بالا رو در نظر بگیرید! یک مشتری یا ناظر پروژه آمار و ارقام و قدیمی شدن و … رو نمیفهمه! میخواد سایت روی لپ تاپ فلان مدیر عامل که ویندوز XP و IE6 داره درست نمایش داده بشه! همین! به همین دلیلی که مقاله اشاره کرده (به روز نبودن خیلی از کاربرها) ما هنوز درگیر Rendering افتضاح IE6 خواهیم بود! حتی وقتی IE9 هم منتشر بشه.

  5. مطلب خوب و کاملی بود.

    اومدم کامنت بزارم، تبدیل شد به پست ! اینجا ارسال کردم :
    http://weblog.nabi.ir/post-19.html

    اما اینم اضافه کنم که…
    با این گفته خیلی موافقم که IE از ابتدا بر یه مبنا و اساسی شروع کرده که اگر الان بخواد به سمت استانداردها تغییر جهت بده مجبوره اون مبنا و اساس های اولیه خودش رو زیر پا بگذاره! در نتیجه در آینده خیلی نزدیک که نسخه های جدیدتر IE جای نسخه متداول فعلی یعنی IE6 رو میگیرند، اونجاست که طراحایی که به IE6 متکی بودند ضربش رو میخورن.
    و اون وقته که تازه معنی این جمله که میگن “طراحی وب بر پایه استانداردها باعث میشه خیالتون از نمایش یکسان صفحات در مرورگرهای نسل جدید راحت باشه” معنی پیدا میکنه.

  6. افشین

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

  7. somayeh karimi

    سلام ، مدت هاست که روی پروژه آشنایی با مفاهیم وتکنیک های cross browser کار می کنم متاسفانه به نتیجه قابل قبولی نرسیده ام ، لطفا در این زمینه یعنی تکنیک هایی که باید در طراحی سایت وبرنامه نویسی انجام شود تا آن سایت در همه مرورگر ها یکسان نمایش داده شود ، اگر مطلبی دارید یا سایتی را می شناسید کمکم کنید .
    با تشکر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *