CMS , CSS to Web Standards?
หลังจากอ่าน กระทู้ที่น่าสนใจมาก ใน blognone แม้ @sugree จะเคยเกริ่นเรื่อง CSS/XHTML ไว้แบบทีเล่นทีจริง (หรือเพราะเจ็บใจที่ทีม Drupal แพ้ก็ไม่รู้?) แต่ก็ไม่ได้คิดว่าจะเริ่มกันเร็วขนาดนี้
ขอพูดถึง CMS showdown นิดนึงก่อน ผมไม่ได้มีส่วนร่วมใน Barcamp Bangkok 3 หรือ CMS showdown แต่ผลงานที่ทำออกมาภายในคืนเดียวแบบนั้น ก็ถือว่า ยอดเยี่ยม (ผมว่าการทำเว็บหลายคนแบบมะรุมมะตุ้ม มันยากกว่าการทำคนเดียวนะ) เดาว่า วัตถุประสงค์ที่ดูดีของการจัด CMS showdown คือ ทำให้ผู้คนเห็นว่า CMS ช่วยลดต้นทุนในการทำเว็บไซต์ได้อย่างไร? ทั้ง ต้นทุนด้านการเงินของคนจ้าง และ ต้นทุนด้านเวลาของคนทำ ที่ไม่ต้องเริ่มต้นสร้างเว็บไซต์เองจากอากาศธาตุ จากนั้นประเด็นก็คงแตกออกมาเป็นเรื่องการทำธีมเพื่อประลองฝีมือ (แบบไม่ซีเรียส) และ CMS showdown ก็เป็นตัวอย่างที่ทำให้เราเห็นว่า ธีมเป็นแค่พื้นผิวด้านนอกของระบบ ซึ่งแต่ละระบบมันแตกต่างกันอยู่แล้ว เช่น Drupal , Joomla หรือ Wordpress ที่ต้องอาศัยความคุ้นเคย เพื่อปรับให้เข้ากับความต้องการของเราเอง แต่ไม่ว่า CMS ตัวใด ก็สามารถทำให้หน้าตาออกมาในแบบที่เราต้องการได้ ด้วยระบบเทมเพลตของมัน + HTML + CSS + Graphics แล้วเรื่อง CSS ก็เลยมาอยู่ในความสนใจ (จนกลายเป็นควันหลงต่อมา?) เพราะมันเป็นสิ่งที่มีร่วมกันใน CMS ทุกตัว [1]
ก่อนที่จะพล่ามต่ออีกยาว จนขี้เกียจอ่าน (หรือน่าหมั่นไส้) ผมก็อยากเสนอไอเดียไว้ตรงนี้เลยว่า CSS Camp (หรือชื่ออื่นก็ตาม) โฟกัสไปที่เรื่อง CSS เป็นหลักไปเลยครับ เพราะมันขายได้และตรงประเด็นที่สุดแล้ว (และ ไม่ชวนให้คนชอบจับผิด มาหาเรื่องเข้าใจผิด เหมือนคำว่า "Web Standards" อีกด้วย) แม้ CSS จะไม่ใช่ทุกสิ่งทุกอย่างของการพัฒนาเว็บไซต์ แต่เราจะเห็นประเด็นแวดล้อมมันอีกมากมาย ที่เกี่ยวข้องกับ Web Standards เช่น (X)HTML, DOM/Javacript, Browser Compatibility, Accessibility, Usability ฯลฯ หรือแม้แต่เรื่อง Semantic Web [2]
ผมคิดว่าควรแยกประเด็น CMS showdown กับ CSS ออกจากกันได้แล้ว (ดูเหมือนตอนนี้ก็แยกแล้ว?) เพราะเมื่อทำธีมเผยแพร่ได้สำเร็จ ก็ถือว่า CMS showdown บรรลุวัตถุประสงค์ของมัน (รึเปล่าครับ?) ส่วนใครจะหยิบเอาไปใช้หรือไม่ ก็ขึ้นอยู่กับทัศนคติของเขา (ผมไม่อยากพูดเรื่องการเมือง) แต่อย่างน้อยสำหรับผม ผลงานครั้งนี้ ก็แสดงให้เห็นว่า
- เรื่องความสามารถของ CMS แต่ละตัวนั้น เอาไว้เป็นทางเลือกสำหรับขายลูกค้าได้ (จะเป็นหน่วยงานราชการหรือไม่ก็ตาม) ดังนั้นการจัดทำ Guidelines สำหรับการใช้งาน จึงเป็นไอเดียที่น่านับถือมาก (แม้จะดูซับซ้อนไปนิดก็ตาม ดูใน css-spec-r2.pdf) เพราะ dev. ทั้งหลาย คงชอบเขียนโค้ด มากกว่าการจัดทำเอกสาร จริงไหม?
- เรื่อง HTML + CSS เอาไว้ขายคนทำหรือคนออกแบบเว็บไซต์ได้ อาจจะขายผู้คนที่กำลังสนใจอยากเรียนรู้การทำเว็บเองด้วยก็ได้ เพราะมันไม่ได้ซับซ้อนเหมือนการเขียนโปรแกรม และไม่ต้องพึ่งเครื่องมือหรูหราราคาแพง เพราะใช้แค่ text editor ธรรมดา ก็เริ่มต้นทำได้แล้ว
(อ้อ เดี๋ยวจะเข้าใจผิด คำว่า "ขาย" ในที่นี้ หมายถึง เอาไว้ดึงดูดความสนใจของกลุ่มเป้าหมายน่ะครับ ไม่ใช่ "เอาเงินอย่างเดียว")
ส่วนเรื่อง Web Standards มันเป็นประเด็นที่ใหญ่มากๆ และเป็นเรื่องของการสร้างมาตรฐานระยะยาวซะส่วนใหญ่ เอาไปขายตอนนี้คงยาก แต่เห็นด้วยอย่างยิ่ง ที่เรา(คนไทย)จะเริ่มสนใจมันวันนี้ ในยุคนี้เราไม่ได้แค่เดินตามโลกเฉยๆ (หรือตามตูดฝรั่งอย่างเดียว) แต่เรากำลังก้าวไปพร้อมกับมัน (ทั้งโลกและตูดฝรั่ง!) เพราะในระดับสากล ก็เพิ่งจะรู้สึกว่ามี web standards ตัวเป็นๆ เมื่อไม่นานมานี้เอง (W3C ยังไม่กล้าใช้คำว่า Standards เลยด้วยซ้ำ แต่ใช้คำว่า "Recommendations" แทน) เพราะผู้คนกำลังพยายามทำให้มันเกิด Semantic Web ที่สามารถเข้่าใจและสื่อสารข้อมูลถึงกันได้ง่ายขึ้น ทั้ง ระหว่างมนุษย์กับมนุษย์ มนุษย์กับคอมพิวเตอร์ และ คอมพิวเตอร์กับคอมพิวเตอร์ เช่น Microformats ก็เป็นความพยายามหนึ่งที่น่าเอาใจช่วย หรือ ใน HTML5 ก็มี elements ใหม่ๆ เพิ่มเข้ามา เพื่อช่วยสื่อความหมายและหน้าที่เฉพาะ แทน <div> ที่เราต้องกำหนด attribute names ซ้ำๆ (ใน id หรือ class) [3] และ elements หรือ tags ใหม่ ใน HTML5 ก็เกี่ยวข้องกับเลย์เอาต์และการแบ่งโซนเนื้อหาโดยตรง ก็เช่น <header> , <nav> , <section> , <article> , <aside> , <footer> เป็นต้น ดูตัวอย่างการนำไปใช้งานได้ที่ youtube.com/html5 (ใช้ Webkit Engine จึงจะเห็นว่ามันทำงานได้จริง)
ผมอ่าน ความเห็นของ @sugree ก็เดาต่ออีกว่า คงอยากให้มี HTML framework แบบ Cross-CMS (?) ที่เป็นมากกว่าการแนะนำวิธีใช้ CSS เพื่อตกแต่งรายละเอียดของธีมอย่างเดียว
ก็เลยนึกต่อไปอีกว่า ถ้าต้องการอะไรที่ใช้งานได้นานๆ ยาวๆ และยืดหยุ่นมากๆ แบบนั้น ก็คงต้องนึกถึง HTML5 ไปเลย เพราะบราวเซอร์หลายตัวเริ่มรองรับมันบ้างแล้ว (และอนาคตดูจะสดใสกว่า XHTML2 ที่เข้มงวดอย่างน่าสยดสยอง) แม้จะยังเอามาใช้แบบเต็มตัวไม่ได้ในวันนี้ แต่ก็มี คนเสนอวิธีเปลี่ยนผ่านไว้แบบ semantic เป็นตัวอย่างไว้แล้วเหมือนกัน และก็มีความพยายามทำเลย์เอาต์แบบครอบจักรวาลไว้แล้วด้วย เช่น One True Layout และ Holy Grail (ตั้งชื่อได้น่าหมั่นไส้ทั้งคู่ แต่มีประโยชน์มาก สำหรับการวางเลย์เอาต์แบบสาวก standards จ๋า) ส่วนการจัดตำแหน่งเนื้อหาชั้นใน ก็ใช้ CSS ทำได้ตามความถนัด (หรือ จะใช้ <table> เข้ามาช่วย ก็ไม่ใช่ "บาป" ถ้ามันทำให้เราบรรลุผลที่ต้องการได้ง่ายขึ้น) หรือไม่ก็ใช้ CSS frameworks ก็ช่วยลดเวลาได้ เช่น Blueprint CSS , 960 Grid System (แถม Fluid 960 Grid System ก็มี) , YUI Grids CSS เป็นต้น
ผมคิดว่า ตอนนี้ CSS กำลังอยู่ในความสนใจของนักพัฒนาเว็บไซต์ชาวไทย เพราะมันเป็นเครื่องสำอางค์แต่งหน้าเว็บ ที่เราไม่ต้องกังวลว่าจะมีผลต่อระบบภายใน แต่มันอาจจะหลอกให้งงเล็กน้อยถึงปานกลางในช่วงแรก กับความตรงไปตรงมาของมัน เพราะมันไม่ต้องการคำสั่งแบบมีเงื่อนไข ไม่ใช่ภาษาโปรแกรม โปรแกรมเมอร์ก็อาจจะงงได้ เพราะมันไม่ต้องใช้ logic อะไรมากมาย ใช้ตัวเลข , สายตา และ จินตนาการเป็นหลัก (ในกรณี IE6 บางครั้งก็ต้องพึ่งสิ่งศักดิ์สิทธิ์ด้วย!) และอีกส่วนที่ทำให้งงได้ไม่แพ้กัน คือ ความสามารถในการรองรับ CSS ที่ไม่เท่ากัน ในบราวเซอร์แต่ละตัว (แน่นอน IE6 คือ แพะรับบาปตัวแรกในกรณีนี้ เวลาคิดอะไรไม่ออก ก็ต้องเอา IE6 มาเป็นจำเลยรักไว้ก่อน เพราะผู้ใช้จำนวนไม่น้อยไม่รู้ด้วยซ้ำว่า web browser คืออะไร เราก็ไปโทษเขาไม่ได้) แต่เราก็ไม่จำเป็นต้องทำเว็บให้ IE6 แสดงผลเหมือนกับบราวเซอร์ตัวอื่นก็ได้นี่ครับ [4] (ถ้าลูกค้าเรียกร้อง ก็บวกค่าแรงเพิ่มซะ) เพราะบางครั้งการแก้บั๊กสำหรับ IE มันเหมือนกับการทำธีมใหม่อีกธีมเลยทีเดียว (ถ้า Microsoft ปล่อย IE เป็น open source ป่านนี้เราคงได้ใช้ IE16 กันแล้ว!)
เขียนไปเขียนมาชักยาว และเริ่มหลงประเด็น สรุปสั้นๆ ว่า CSS Camp หรือ Web Standards Camp (หรืออะไรคล้ายๆแบบนั้น) ก็คือ ความเคลื่อนไหวที่เป็นข่าวดีสำหรับคนทำเว็บเมืองไทย และน่าเข้าไปมีส่วนร่วม เป็นกำลังใจให้ครับ ;)
Footnotes
- อาจคล้ายโจทย์ของ CSS Zen Garden ที่ให้เล่นกับไฟล์ HTML เดียวกัน แต่เปลี่ยนหน้าตาได้ไม่ซ้ำ โดยใช้แค่ CSS กับ Graphic เท่านั้น จนเมื่อหลายปีก่อน มันปลุกกระแสให้ผู้คนสนใจ CSS มากขึ้น ตามคอนเซ็ปต์ Separation of presentation and content ส่วนอีกความคิดเห็นที่น่ารับฟัง คือ The myth of content and presentation separation เพราะ Web Standards อาจไม่ใช่คำตอบสุดท้ายเสมอไป
- ตอนเริ่มต้น (1998) Web Standards เป็นแค่แนวคิด เพื่อค้นหาหนทางปฏิบัติที่ดีที่สุดในการออกแบบและพัฒนาเว็บไซต์ และเพื่อกดดันผู้ผลิตบราวเซอร์รายใหญ่ในขณะนั้นด้วย - Netscape, Microsoft อ่านต่อได้ที่ dev.opera.com เพียงแต่ชื่อมันชวนให้เราเข้าใจว่าเป็น "มาตรฐาน" ที่ต้องปฏิบัติตาม และทุกวันนี้ก็ดูเหมือนว่ามันจะทำสำเร็จซะด้วยสิ เมื่อคนทำเว็บและผู้ผลิตบราวเซอร์ให้ความสำคัญกับมัน และเท่าที่ผมรู้ แหล่งข้อมูลออนไลน์เกี่ยวกับ Web Standards ที่ค่อนข้างครอบคลุมและอ่านแล้วเข้าใจง่าย(กว่าที่อื่น) อยู่ใน เว็บไซต์ของ Opera เพราะใน webstandards.org จะเป็นเรื่องแนวคิดและข่าวประกาศมากกว่า ส่วนใน W3C ลืมไปได้เลย เพราะมีไว้ให้ เทพ อ่าน! ถ้าเน้น Web Design เป็นเรื่องๆไป ก็ลองค้นดูที่ alistapart.com
- มีคำเรียกแบบประชดประชัน สำหรับการใช้บาง tags หรือ บาง attributes อย่างฟุ่มเฟือยว่า divitis , classitis และ <span> mania เป็นต้น ซึ่งบางทีสำหรับคนทำธีม open source CMS มันเลี่ยงความฟุ่มเฟือยแบบนั้นไม่ได้จริงๆ!
- ข้อความบางส่วนจาก webstandards.org ที่เขียนไว้อย่างทะนงตน แต่น่าฟัง (เพราะไม่ง้อการ Hack)
Note that there is only one version of the site; there are no fancy backend tricks that deliver one site to one browser, and another site to another browser. What you get is what everyone gets. It’s up to your browser to decide what to do with it, which is the way that the Web is supposed to work.
ส่วนมาตรการเพื่อกีดกัน IE6 แบบละมุนละม่อม คือ ให้ดูเนื้อหาได้ แต่ไม่แสดงธีมใน IE6 ก็ต้องยกให้ไอเดียนี้ Universal Internet Explorer 6 CSS