<!DOCTYPE html>
<html class="reftest-wait">
   <head>
     <title>accent / accentunder</title>
     <meta charset="utf-8"/>
     <style>
       * {
         font-size: 12pt;
       }
     </style>
     <script type="text/javascript">
       function doTest() {
         var i;
         for (i = 1; i <= 6; i++) {
           document.getElementById('ra' + i).removeAttribute('accent');
           document.getElementById('aa' + i).setAttribute('accent', 'true');
         }
         for (i = 1; i <= 2; i++) {
           document.getElementById('rau' + i).removeAttribute('accentunder');
           document.getElementById('aau' + i).setAttribute('accentunder', 'true');
         }
         document.documentElement.removeAttribute("class");
       }
       window.addEventListener("load", doTest, false);
     </script>
   </head>
   <body>
    <math>
      <munder>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="ra1" accent="true">O</mo>
      </munder>
    </math>
    <math>
      <mover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="ra2" accent="true">O</mo>
      </mover>
    </math>
    <math>
      <munderover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="ra3" accent="true">O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    <math>
      <munderover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo id="ra4" accent="true">O</mo>
      </munderover>
    </math>
    <math>
      <mover id="ra5" accent="true">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
      </mover>
    </math>
    <math>
      <munderover id="ra6" accent="true">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    <math>
      <munder id="rau1" accentunder="true">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
      </munder>
    </math>
    <math>
      <munderover id="rau2" accentunder="true">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    <hr/>
    <math>
      <munder>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="aa1">O</mo>
      </munder>
    </math>
    <math>
      <mover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="aa2">O</mo>
      </mover>
    </math>
    <math>
      <munderover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo id="aa3">O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    <math>
      <munderover>
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo id="aa4">O</mo>
      </munderover>
    </math>
    <math>
      <mover id="aa5">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
      </mover>
    </math>
    <math>
      <munderover id="aa6">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    <math>
      <munder id="aau1">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
      </munder>
    </math>
    <math>
      <munderover id="aau2">
        <mspace width="1em" height="3em" mathbackground="red"/>
        <mo>O</mo>
        <mo>O</mo>
      </munderover>
    </math>
    </body>
</html>
