Semantic HTML is simply HTML that describes its meaning to a web browser and not just its presentation. For example <div> is a common HTML element which is used to style certain web elements, however a <div> could be anything. Contrastingly, the <button> tag tells the web browser exactly what the element in question is — a button. In this regard the <div> tag is non-semantic while the <button> is semantic.
Semantic HTML is foundational for web accessibility because the assistive technologies that help disabled users use the Web rely on semantic HTML to convey meaning to their users.
For example, a screen reader (a standard assistive technology for visually impaired users) will encounter semantically marked-up headings (H tags) and identify them as such to their user. If those headings were only identifiable as headings thanks to visual style, the screen reader would only interpret them as standard text.
Some examples of semantic HTML:
<H1>, <H2>, etc for headings
<button> for buttons
<p> to indicate paragraphs
<header> to define the header of your website
<footer> to define page footers
<img> for non-decorative images
Always use HTML tags that exist to define specific site elements where relevant to maximise site accessibility.