在開發(fā)網(wǎng)站過程中,我們不可避免的要面對各種各樣的客戶端和瀏覽器,以及殘障用戶。殘障用戶包括視力障礙、聽力障礙、手部障礙等,這些用戶都需要我們構(gòu)建無障礙網(wǎng)站,使他們能夠更好的訪問網(wǎng)站。在PHP中,我們也可以通過Disabled Disabled PHP的方式來構(gòu)建無障礙網(wǎng)站,下面就來具體介紹一下。
Disabled Disabled PHP可以用于以下場景:
1. 網(wǎng)站含有重要信息需要加密,需要禁用自動修復(fù)錯誤。 2. 殘障用戶需要使用屏幕閱讀器(Screen reader)訪問網(wǎng)站,需要保證HTML語義正確。 3. 網(wǎng)站需要通過W3C驗(yàn)證。 4. 網(wǎng)站需要完成WCAG2.0的標(biāo)準(zhǔn)。
在此之前,我們需要了解一下PHP的錯誤報告級別:
$error_level = array( E_ERROR =>'E_ERROR', E_WARNING =>'E_WARNING', E_PARSE =>'E_PARSE', E_NOTICE =>'E_NOTICE', E_CORE_ERROR =>'E_CORE_ERROR', E_CORE_WARNING =>'E_CORE_WARNING', E_COMPILE_ERROR =>'E_COMPILE_ERROR', E_COMPILE_WARNING =>'E_COMPILE_WARNING', E_USER_ERROR =>'E_USER_ERROR', E_USER_WARNING =>'E_USER_WARNING', E_USER_NOTICE =>'E_USER_NOTICE', E_STRICT =>'E_STRICT', E_RECOVERABLE_ERROR =>'E_RECOVERABLE_ERROR', E_DEPRECATED =>'E_DEPRECATED', E_USER_DEPRECATED =>'E_USER_DEPRECATED' );
那么Disabled Disabled PHP具體是什么呢?我們可以通過設(shè)置PHP的錯誤報告級別來達(dá)到這個目的,如下:
// 禁用所有錯誤報告(除了E_ERROR) error_reporting(E_ERROR); // 禁用所有提示性錯誤,但是保留警告和錯誤 error_reporting(E_WARNING | E_ERROR); // 禁用所有報告(包括警告、錯誤、提示)、并將錯誤禁用 error_reporting(0);
很多人可能會想,為什么要禁用所有錯誤,并將錯誤禁用掉。這是因?yàn)椋蜷_錯誤報告后,在網(wǎng)站中會出現(xiàn)各式各樣的錯誤信息,這就會導(dǎo)致殘障用戶無法使用屏幕閱讀器正常地訪問網(wǎng)站。
禁用錯誤并不意味著我們完全不關(guān)心錯誤,我們依然要捕捉錯誤,而不是讓錯誤淹沒在其他的錯誤中。我們可以通過try-catch將錯誤捕捉,并進(jìn)行適當(dāng)?shù)奶幚怼?/p>
try { // do something here... } catch (\Exception $e) { // Handle the exception here }
還可以通過register_shutdown_function和set_error_handler來注冊函數(shù)來捕捉錯誤,這個就需要根據(jù)項(xiàng)目需求來進(jìn)行選擇。
最后,我們需要注意的是,Disabled Disabled PHP只是一個構(gòu)建無障礙網(wǎng)站的手段之一,更多的無障礙實(shí)踐在于語義化構(gòu)建HTML、使用ARIA屬性、使用無障礙CSS等。