|  | 1 | == Component Model (aka XBL2) Use Cases == | 
          
            |  | 2 |  | 
          
            |  | 3 | A canonical set of uses cases that represents the set of problems we are trying to solve by implementing a component model. For implementation details, see [http://dev.w3.org/2006/xbl2/Overview.html XBL2 Spec]. | 
          
            |  | 4 |  | 
          
            |  | 5 | === Built-in HTML Elements and Their Behaviors === | 
          
            |  | 6 |  | 
          
            |  | 7 | * provide a uniform way to browsers to implement complex HTML elements, such as video/audio, sliders, progress elements, etc. possibly using scripting. | 
          
            |  | 8 | * provide light-weight implementations of specialized markup languages | 
          
            |  | 9 |  | 
          
            |  | 10 | === Custom User Interface Widget System === | 
          
            |  | 11 |  | 
          
            |  | 12 | Build a widget system that allows the following: | 
          
            |  | 13 | * asynchronously instantiate and initialize widgets | 
          
            |  | 14 | * for instance, display a widget without starting up a script context, then progressively enhance with script. | 
          
            |  | 15 | * seamlessly reuse widget written using various libraries or frameworks | 
          
            |  | 16 | * use widgets declaratively, with minimal knowledge of the underlying implementation | 
          
            |  | 17 | * provide a uniform way (i.e. DOM) to declare widget APIs | 
          
            |  | 18 |  | 
          
            |  | 19 | === Layout Manager === | 
          
            |  | 20 |  | 
          
            |  | 21 | * make easier the restructuring of content to accommodate layout, both in an imperative and a declarative way | 
          
            |  | 22 | * enable development of templating/theming frameworks |