一年一度的CSS Naked Day與JS Naked Day馬上就要到了。
有非常多種務實、很頻繁發生的原因,會導致web使用者就算願意也無法使用網站上的CSS樣式或JavaScript程式碼。因此此網站的架設,打從第零天,我就考慮了四種情境:
在沒有CSS樣式表與JavaScript的情境中,就算退回只有HTML的情境一,身為尊重web使用者的網站建造者,我們仍然會盡力確保web最基本的核心功能——讓使用者成功獲得我們想要傳達的文字內容與多媒體資訊。
我們不假設CSS樣式表會被順利下載(若是獨立檔案)、不假設它會被瀏覽器成功解析,當然也不假設JavaScript會被執行。沒有CSS或沒有JavaScript,也是一個user agent處理網頁的正常執行路徑。當遇到情境二、情境三、情境四,也就是使用者很「幸運」地可以使用CSS、JavaScript、或兩者皆可時,我們才提供「漸進增強」使用者體驗。
為了強調語義化HTML結構、漸進增強(progressive enhancement)軟體架構的重要性,參加CSS、JavaScript裸奔狂歡的網站架設者,會在4月8日到10日移除個人網站上所有的CSS樣式表,並於4月23日到25日移除個人網站上所有的JavaScript程式碼,以確保在4月9日時,訪客看到的是CSS樣式卸妝後的原貌,在4月24日時則是去除JavaScript負擔的清爽網站。
如果你想參與,但是你的個人網站的架構複雜到,你無法輕易地停用(註解掉或直接移除)所有HTML網頁上的CSS與JavaScript,那麼你也可以選擇直接在web server層級為整個網站所有的HTTP response都加上一個HTTP header,設定Content Security Policy政策為script-src和style-src都是'none',代表禁止載入任何來源的JavaScript與stylesheet:
content-security-policy: script-src 'none';style-src 'none'
我自己呢,決定更進一步:從今天開始到四月結束,我會完全停用此網站的CSS和JavaScript。你將會看到最純淨的、沒有任何「添加物」的HTML檔案的原貌。(在此期間,如果你查看這兒任何一個頁面的HTML原始碼,應該會看到我用HTML註解標記<!--和-->將<script src=...></script>和<link rel=stylesheet href=...>包了起來。除此之外我沒有做任何其他異動。)
你的網站,在沒有CSS與JavaScript的情況下,是否也能順利提供核心內容呢?何不直接把所有CSS與JavaScript移除一陣子、測試看看呢?