Easy answer: Web standards. But college and university profs have outdated skills and are the least likely to even know how to code a site using semantic HTML and CSS for layout. I keep hearing stories of students being penalized for not using tables for layout and
<font> tags. This stuff is old hat now, but the incompetents who teach the courses (those who can do, and those who cannot definitely teach) think it’s some kind of weird futuristic technology if they know about it at all.
Web design is really a graphic-design discipline. Designers should be given a basic course in HTML and CSS so they know what is reasonably possible. (The last thing we want is design students handing over Photoshop files to hapless developers and saying “Here. Make it look just like that.” A lot of the time you can’t.)
Developers will tend to have different brain structures and won’t be very good designers most of the time. They’re two separate disciplines.
If you could create your dream curriculum for web design and development, what courses and information would you include? Why? What courses and information now in such programs would you eliminate? Why?
You’d start with a separate deprogramming step. Find out if any of the students had taken any courses or read any books that taught tables and “FONT tags.” Separate these people out for special attention during the next step, which is a simple explanation of what Web standards are. (I’ve given this explanation to non-experts many times and it takes eight minutes flat.)
Then you’d teach the commonest HTML elements (p, h1 through h6, img, lists, forms). You’d show printouts (actual printouts) of Web pages and have students write on top of each item what the structural element is.
You’d give them many kinds of copy, including Microsoft Word documents they’d have to convert, and get them to mark everything up semantically.
Only then do you start teaching CSS, beginning with basic typography and backgrounds and progressing to layouts.
JS I have no advice on.
A markover: Take a site with lousy code and redo at least one page in good code. A site that shouldn’t need to be accessible but is: Take a client, even a hypothetical one, like a photographer and create an accessible site. A site with a complex sign-up form (like applying for a passport). If you can get the user interface and form HTML/CSS right on a page like that, you can work anywhere.
Stop hiring losers as teachers.