As of release 5.4.0.x preceding products based on the SpellCheckAsYouType (SCAYT) core as well as WProofreader use the special markup mechanism for underling spelling and grammar errors. This markup mechanism adds <span> elements with special classes, e.g. class="wsc-spelling-problem", which without preliminary cleaning might got to database and then prepopulated to the text.

We understand that this might be a huge problem to our customers and their end users. Thus, we are developing a new mechanism of highlighting spelling and grammar problems which will resolve the issue with extra <spans>.

Until then, if you have such a problem, we recommend you to implement a mechanism that on your end that will clean extra <spans> before saving the information to a database. Below you can find an example that uses the removeMarkupFromString command. 

var wscInstance; // You will be able to call WProofreader API using this variable

    onLoad: function(instance) {
        wscInstance = instance; // Here you make WProofreader instance available from your code

After that you can use it as follows to clean unnecessary spans that have been added by WProofreader:

wscInstance.removeMarkupFromString('<p>Example <span class="wsc-spelling-problem" data-spelling-word="texxt" data-wsc-lang="en_US">texxt</span>.</p>'); // It will return'<p>Example texxt.</p>'

For more options and methods in WProofreader, please visit the API options and methods documentation.