Progressive enhancement is an approach to web development that builds accessible web pages by starting with basic content and functionality that work for all users and then is enhanced for users with more advanced browsers and devices. The core principles are to provide basic content accessible to all browsers, basic functionality to all browsers, and then enhance layout with CSS and behavior with JavaScript while respecting user preferences. The benefits are greater accessibility, better search engine optimization, and a usable site for more browsers and devices, though it requires upfront planning and can be difficult to execute.