小编mar*_*449的帖子

NVDA 忽略带有 role="alert" 的角度 *ngIf 块

我的目标是向用户提供有关输入错误的信息。在这个例子中,我可以在没有角度的情况下做到这一点。我还设法使用“innerHTML”属性重新创建了以下示例,但它也不适用于 NVDA,简而言之,它只是在发生错误时将一个节点附加到正文

<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>Contact form (WAI-ARIA)</title>
<script type="text/javascript">
  function removeOldAlert()
  {
    var oldAlert = document.getElementById("alert");
    if (oldAlert)
      document.getElementById("error").removeChild(oldAlert);
  }

  function addAlert(aMsg)
  {
    removeOldAlert();
    var newAlert = document.createElement("div");
    newAlert.setAttribute("role", "alert");
    newAlert.setAttribute("id", "alert");
    var msg = document.createTextNode(aMsg);
    newAlert.appendChild(msg);
    document.getElementById("error").appendChild(newAlert);
  }

  function checkEntryValidity(aID, aSearchTerm, aMsg)
  {
    var elem = document.getElementById(aID);
    var invalid = (elem.value.indexOf(aSearchTerm) < 0);
    if (invalid) {
      elem.setAttribute("aria-invalid", "true");
      addAlert(aMsg);
    } else {
      elem.setAttribute("aria-invalid", "false");
      removeOldAlert();
    }
  }
</script>
</head>
<body>
<form method="post" action="post.php">
<fieldset><legend>Please …
Run Code Online (Sandbox Code Playgroud)

wai-aria angularjs nvda typescript

4
推荐指数
1
解决办法
1979
查看次数

标签 统计

angularjs ×1

nvda ×1

typescript ×1

wai-aria ×1