At the moment, it appears that the detection of IME preedit is based on word boundaries. This does not work if characters such as ; are used as part of the input method (for example, some shuangpin schemes). It would be better to detect whether the IME is active by using the compositionstart and compositionend events so that error detection does not fire between these two events.