A semantic element clearly describes its meaning to the browser and the developer.
"Div" and "span" elements don't tell us anything about their content, so they are non-semantic.
"Section", "article", "table", "header" and "footer" clearly define their content, so they are semantic.
Defines a section (thematic grouping of content, typically with a heading) in a document
For example, a web page could normally be split into sections for introduction, content, and contact information.