漸進增強

請參考 Wikipedia 漸進增強文件Progressive enhancement is still important

開發範例

第一步:使用正確的 HTML 元件寫出最基本且立即可用的功能。

<form action="/signup">
  <fieldset>
    <label for="username">使用者名稱</label>
    <input type="text" id="username" autocomplete="username">
  </fieldset>
</form>

第二步:加上需要的 CSS classes。

<form action="/signup">
  <div class="fields">
    <fieldset class="fieldset">
      <label for="username" class="field-label">使用者名稱</label>
      <input class="field-input" type="text" id="username" autocomplete="username">
    </fieldset>
  </div>
</form>

第三步(若有需求):選擇性用 selector (範例使用 [data-auto-check])加上想要的 JavaScript 附加功能。

<form action="/signup">
  <div class="fields">
    <fieldset class="fieldset">
      <label for="username" class="field-label">使用者名稱</label>
      <input data-auto-check class="field-input" type="text" id="username" autocomplete="username">
    </fieldset>
  </div>
</form>

<script>
  document.querySelector('[data-auto-check]').addEventListener('input', ...)
</script>

用這樣的開發模式,即可確認在 CSS 或 JavaScript 沒有讀取成功的狀態下,使用者仍然可以操作網站。並在 CSS 或 JavaScript 正常的狀況下,讓使用者用有最佳的體驗。