I have recently taken up a new job as a developer at a company where I have inherited an in-house CMS built approximately 5 years ago. The CMS constructs pages in XML which are then output to the page as HTML. Some of the markup is generated within the back-end PHP, whereas some is exposed to the user in the administration layer, to enable editing. So far I have observed that none of the markup is semantic: 95% of it is plain text wrapped in tags, like so:
This is a heading
This is a subheading
This is a paragraph.
<a href='#'>This is a button</a>
(The markup has nested divs where required and utilises classes, but the above is intended as a demonstration that semantic tags are not in use.)
I am the only developer responsible for front-end work at this company: the previous front-end developer has left. I was informed in the handover that semantic markup should never be used, and that I should maintain the markup style going forward. I was unable to elicit any technical explanations for this structural decision, and the other employees at the company do not know either.
For now I am going to maintain the system consistently, but in the meantime I am investigating why this structural choice might have been made. Originally the platform would have supported IE8, but in the present day we support IE9 and above. Experiments with the templating system show that the CMS can handle semantic HTML, and my testing demonstrates that the generated webpages function as expected. I can detect no problems caused by the introduction of HTML5 semantic elements in any modern browser (though I have not yet attempted to test in IE8).
What are possible technical reasons for deliberately excluding the use of semantic markup from a web project?
NB. Some companies have atypical in-house rules, and working at those companies entails following the rules, regardless of opinion. My question is not whether I should maintain the status quo or change it, but what reasons might have affected the design choices in the first place.