Semantic markup is the best way of writing and use of HTML elements so that it reinforces the meaning of the content. Basically semantic markup is used to show the structure of the web design and that CSS is for the style of the web. An example is when it comes to h1, h2, h3, h4, or p. All of these are heading however, some are more important than others, and that is why you separate and organize code to differeciate what is more important. This makes your code easier to understand and more accessible.
Section 508 is an amendment to the United States Workforce Rehabilitation Act of 1973. This federal law requires agencies to make their information and communication technologies such as online training and website accessible for everyone, including individuals with disabilities.
Search Engine Optimization (SEO) is the process of maximizing or increasing website traffic from the free, organic, editorial, or natural search results from the search engines by listing matching websites at the top of the list
All of these are related. To explain in further detail, Section 508 deals with making your HTML code more accesible and comprehensible for users with certain disabilities. Having a more structured and organized code using semantic markups will support an easier time for the disabled to interpret the code. Your semantic markup will also allow you to increase website traffic because SEO will have an easier time reading your HTML, thus putting you at the top of the results page if you meet the criteria