Open edX Developer's Guide
  • 1. General Information
    • 1.1. Read Me
    • 1.2. Other edX Resources
    • 1.3. edX Browser Support
    • 1.4. Change Log
  • 2. Open edX Architecture
    • 2.1. Overview
    • 2.2. Key Components
  • 3. Contributing to Open edX
    • 3.1. Process for Contributing Code
    • 3.2. Contributor
    • 3.3. Pull Request Cover Letter
    • 3.4. Community Manager
    • 3.5. Product Owner
    • 3.6. Core Committer
    • 3.7. Code Considerations
  • 4. Extending the edX Platform
    • 4.1. Options for Extending the edX Platform
    • 4.2. Integrating XBlocks with edx-platform
    • 4.3. Custom JavaScript Applications
    • 4.4. The Custom JavaScript Display and Grading Example Template
  • 5. edX Modulestores
    • 5.1. Overview of the edX Modulestores
    • 5.2. MixedModuleStore
    • 5.3. Split Mongo Modulestore
  • 6. Testing
    • 6.1. Jenkins
    • 6.2. Code Coverage
    • 6.3. Code Quality
  • 7. Paver
    • 7.1. Paver Commands
  • 8. Development Environment
    • 8.1. Setting up PyCharm to Debug E-Commerce
  • 9. Developing User Interfaces
    • 9.1. Using the edX Pattern Library
    • 9.2. Using the edX UI Toolkit
    • 9.3. Adding a UI Page
  • 10. Analytics
    • 10.1. Event Tracking
    • 10.2. Other Tracking Systems
  • 11. Deploy a New Service
    • 11.1. Intro
    • 11.2. Considerations
  • 12. Writing Good Code
    • 12.1. edX Accessibility Guidelines
    • 12.2. edX Internationalization
    • 12.3. Preventing Cross Site Scripting Vulnerabilities
    • 12.4. Django Good Practices
  • 13. Language Style Guidelines
    • 13.1. EdX JavaScript Style Guide
    • 13.2. EdX Objective-C Style Guide
    • 13.3. EdX Python Style Guide
  • 14. Glossary
    • 14.1. A
    • 14.2. C
    • 14.3. D
    • 14.4. E
    • 14.5. F
    • 14.6. G
    • 14.7. H
    • 14.8. I
    • 14.9. K
    • 14.10. L
    • 14.11. M
    • 14.12. N
    • 14.13. O
    • 14.14. P
    • 14.15. Q
    • 14.16. R
    • 14.17. S
    • 14.18. T
    • 14.19. U
    • 14.20. V
    • 14.21. W
    • 14.22. XYZ
 
Open edX Developer's Guide
  • Table of Contents »
  • 12. Writing Good Code
  • Need Help? |Feedback

12. Writing Good CodeΒΆ

  • 12.1. edX Accessibility Guidelines
    • 12.1.1. Introduction
    • 12.1.2. Accessibility Best Practices
    • 12.1.3. Use semantic markup
    • 12.1.4. Make images accessible
    • 12.1.5. Avoid using CSS to add content
    • 12.1.6. Include a descriptive title attribute for all <iframe> elements
    • 12.1.7. Include link and control labels that make sense out of context
    • 12.1.8. Make sure form elements have labels
    • 12.1.9. Use WAI-ARIA to create accessible widgets or enhance native elements
    • 12.1.10. Manage the focus for pop-ups
    • 12.1.11. Inform users when content changes dynamically
    • 12.1.12. Hide or expose content to targeted audiences
    • 12.1.13. Choose colors that meet WCAG 2.0’s minimum contrast ratios
    • 12.1.14. Test your code for accessibility
  • 12.2. edX Internationalization
    • 12.2.1. Internationalization Coding Guidelines
    • 12.2.2. Guidelines for Translating the Open edX Platform
  • 12.3. Preventing Cross Site Scripting Vulnerabilities
    • 12.3.1. Philosophy and General Rules
    • 12.3.2. Types of Context and Escaping
    • 12.3.3. Editing Template Files
    • 12.3.4. Making Legacy Mako Templates Safe by Default
    • 12.3.5. Safe Template Linter
    • 12.3.6. Advanced Topics
    • 12.3.7. Additional Resources
  • 12.4. Django Good Practices
    • 12.4.1. Imports
Next Previous

Copyright © 2016, edX Inc.
Creative Commons License
These works by edX Inc. are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.