HTML Submission Guide:
1. All vendor generated HTML needs to be validated via the W3C validation. However, browser prefixes and any other cutting edge code will be exempt.
2. For a theme to be marked HTML5 compliant, the relevant semantic structural elements need to be present and used appropriately
3. No hardcoded inline styles are allowed anywhere. Dynamic inline styles are permitted where necessary.
4. IDs and classes need to be appropriately named and follow a naming convention.
5. Use human readable selectors that describe what element(s) they style.
6. Refrain from using over-qualified selectors, div.container can simply be stated as .container.
7. For a theme to be marked HTML5 compliant, the relevant semantic structural elements need to be present and used appropriately.
JavaScript Submission Guide:
1. JavaScript code should be placed in external files whenever possible.
2. JavaScript files need to be placed in the footer where possible, barring notable exceptions, for example: Modernizr, jQuery UI, etc.
3. The code shouldn’t raise any errors or notices.
WordPress Submission Guide:
1. No deprecated template tags allowed.
2. Themes are required to eliminate WARNING, REQUIRED, RECOMMENDED, and INFO notices from the ‘Theme-Check‘or NS Theme Check plugin.
3. The functions like wp_title(), wp_head(), wp_footer(), post_class(), body_class() are mandatory.
4. If incorporated into the theme, custom template files are required to be called using get_template_part().
5. File naming and structure must follow WordPress best practices.For example, do not use tag-header.php, custom-header.php etc.
6. WordPress core features need to be incorporated like Automatic Links, Post Thumbnail, Comments
7. Content width is used to assign a maximum width for media and is mandatory.
8. Modification of filters in wptexturize() is not allowed.
9. Modification of filters in wpautop is not allowed.
10. Default WordPress CSS classes must be covered in the stylesheet, since this is expected native behavior.
11. Use a unique prefix for all function names, classes, hooks, public/global variables, and database entries to avoid conflict issues with plugins and other themes.
12. wp_enqueue_style() must be used to enqueue all stylesheets.
13. wp_enqueue_script() must be used to add any JavaScript code to a page.
14. Themes will be required to use whichever version of jQuery ships with the current version of WordPress.
15. Themes must not have any PHP notices, warnings, or errors – please develop with errors enabled, and WP_DEBUG set to true.
16. The database shouldn’t be accessed or modified directly. If there is a defined function that can get the data you need, that must be used instead. Use $wpdb and its methods to interface with the database instead of rolling your own.