learning object development guide
Transcription
learning object development guide
LEARNING OBJECT DEVELOPMENT GUIDE TUESDAY, MARCH 30TH, 2004 Prepared By 204 - 1010 Chilco Street Vancouver, BC, Canada / V6G 2R6 TABLE OF CONTENTS 01 02 03 INTRODUCTION 4 A B C D 4 4 5 6 LEARNALBERTA.CA ENVIRONMENT 7 A B C D 7 7 8 9 Performance Factors Displays Browser Navigation Bar and Browser Chrome Accessibility Standards THE LEARNALBERTA.CA WRAPPER A B C D E F G H I J 05 LearnAlberta.ca Overview Presentation of Learning Objects on LearnAlberta.ca Where Learning Resources May Be Used Additional LearnAlberta.ca Reference Guides DEPLOYMENT ENVIRONMENTS A B C D 04 Who Should Use This Guide Purpose Of This Guide Expectations of the Developer Living Document What is it? Why do we need it? What is on the Wrapper? What is not on the Wrapper? What are the rules? LearnAlberta.ca Icon Treatment Functional Design Must Be Removable Visual Treatment Guidelines Some Examples FUNCTIONAL DESIGN A B C Guidelines for Common Elements Media Control Elements Navigational Elements LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 10 10 12 13 13 15 15 15 16 16 17 18 19 19 19 20 22 22 28 34 2 TABLE OF CONTENTS 06 GUIDELINES FOR CONTENT PRESENTATION A B C 07 CODE DOCUMENTATION AND MEDIA CREATION A B C D 08 Why a Style Guide? Style Guide Audience Libraries High Level Outline REFERENCES A B 11 Flash Director LiveStage Professional (QuickTime) LEARNING OBJECT SPECIFIC STYLE GUIDE A B C D 10 Programming General Naming Conventions Directory Structure Image Files MEDIA SPECIFIC DEVELOPMENT A B C 09 Text Content Thumbnails Rich Media Internal External GLOSSARY OF LEARNALBERTA.CA TERMS LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 37 37 38 39 40 40 42 43 44 45 45 48 52 58 58 58 58 58 61 61 62 64 3 01 INTRODUCTION The LearnAlberta.ca Learning Object Development Guide is the primary resource for developers to use while creating learning objects for the LearnAlberta.ca portal. This document acts as the hub, or umbrella document, for the following documents related to LearnAlberta.ca: 1) 2) 3) 4) 5) Content Development Technical Specifications Functional Design Guidelines Instructional Design Guidelines User Interface Design Guidelines Guidelines for Recognizing Diversity and Promoting Respect The LearnAlberta.ca Learning Object Development Guide will cite the above-mentioned documents throughout, but is not meant to replicate any of the information contained in those documents. So, developers must be comfortable with the abovementioned documents first, before using this guide. It is recommended that this guide be read in its entirety, however, it is also structured to act as a convenient reference guide. It allows quick access to important information required for specific tasks. 1.A WHO SHOULD USE THIS GUIDE This document is intended for internal and third party developers working on learning resources for LearnAlberta.ca. However, project coordinators will also find this document useful in assessing the work being performed by these developers. 1.B PURPOSE OF THIS GUIDE This guide will provide high-level guidance on how to create learning resources for the LearnAlberta.ca portal to ensure: 1) Consistency Consistency means that the user will immediately ‘know’ upon launching the object, that it is a LearnAlberta.ca resource. It is important to understand that consistency does not mean a common ‘look and feel’ as it might apply to a typical Website. Learning objects will have very different looks from one to the next since we are dealing with a wide range of learners (K-3 level to post-secondary), and a wide variety of subjects. 2) Quality Quality means that every learning object will reflect the best workmanship that each developer is capable of providing. Each learning object will undergo pre-planned tests to ensure the utmost refinement upon completion. 3) Reusability Reusability means that the learning objects will be created with certain prescribed elements and founded upon some predetermined procedures so as to optimize the ease and flexibility of use by a third party after the product is turned over to Alberta Learning. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 4 01 INTRODUCTION 1.C EXPECTATIONS OF THE DEVELOPER The LearnAlberta.ca Learning Object Development Guide is not a ‘how to’ guide. It assumes that the reader is an experienced digital media and Web professional. As such, this guide will not discuss specific multimedia development techniques but instead will guide well-versed professionals by outlining processes and procedures that should be adopted by the developer when creating LearnAlberta.ca learning objects. COMPETENCY It is assumed that all developers have a level of competency that places them as leaders among their industry peers. Developers should be well versed in: • • • • • • • • • Object Orientated Analysis and Design Media Digitization and Digital Media Deployment Web Standards including Accessibility Information Design User Interface Design Scripting and Programming Graphic Design Cross Platform deployment Issues All other skill sets necessary to perform the required development work. QUALITY Developers must ensure that their skills and efforts directly translate into the highest quality product possible. Quality will be assessed based on recognized, industry-accepted standards. Development shortcuts that reduce consistency, reliability, or reuse are never acceptable. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 5 01 INTRODUCTION FIT While the developer understands that individual learning resources are unique and function independently, it must also be understood that all resources must be designed to ‘fit’ naturally into LearnAlberta.ca. As such, the developer is responsible for: 1) Understanding the overall concept or objective of the LearnAlberta.ca portal. 2) Understanding how learners navigate the portal and launch objects. 3) Understanding the overall ‘look and feel’ of LearnAlberta.ca. In essence, the developer must ensure that the learning object under development takes into account all issues related to the entire LearnAlberta.ca portal experience. FUTURE PROOFING Developers will take care to develop projects using industry standards and best practices to ensure future proofing is a primary outcome of their development work. Objects will be created to endure a long active life as technologies advance in display devices, and as CPUs become faster. Developers also need to take care to ensure that the look and feel of their project will not become quickly dated. Developers will also make certain that projects are properly constructed so that third party developers can quickly access the project source files and make changes with minimum difficulty. 1.D LIVING DOCUMENT This learning object development guide is intended to be a ‘living’ document, meaning that it will evolve over time. So, it is understood that there may be exceptions to some of the guide’s content and additions to it as well. However, because adherence to the guide is paramount, there are only certain circumstances under which a developer can get some leeway. The developer must provide clear written support for the change being recommended and then gain Alberta Learning’s approval before proceeding with the work. Whether the situation in question is deemed to have a universal application or whether it is a unique exception, this guide should be amended with a description of the circumstances and the rationale. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 6 02 LEARNALBERTA.CA ENVIRONMENT 2.A LEARNALBERTA.CA OVERVIEW The LearnAlberta.ca portal will provide all Albertans with access to life long learning resources. Although the portal will initially provide learning objects in both English and French for the Kindergarten to Grade 12 communities, it will eventually expand to include all Albertans - a group of over one million users. Learning objects are continually being developed, licensed, and acquired to populate several repositories of learning objects. The LearnAlberta.ca portal is completely plug-in based and is constructed to support high quality learning objects, growth in the quantity of learning objects, and growth in the number of user groups able to access them. The portal has an intended audience of four user groups: 1) 2) 3) 4) Learners (primary users) Teachers (secondary users) Parents (secondary users) Developers (peripheral users) 2.B PRESENTATION OF LEARNING OBJECTS ON LEARNALBERTA.CA To ensure a proper fit, as described in Section 1, the developer needs to understand where the completed learning object will reside, and how the learner will use it. Access to all learning objects is provided via the LearnAlberta.ca portal, which is essentially the user interface to an extensive learning object repository. The interface provides the learner, teacher, or parent with quick and easy access to the learning resources of their choice. BROWSE FUNCTION Users generally browse through the portal by first identifying themselves with a grade level, and then a subject of interest. Users are then presented with a listing of available resources represented by a thumbnail and a brief description. Learning objects can be launched from this listing. SEARCH FUNCTION Users may also search for resources using the search functionality of the portal. The search results are displayed in a similar list format to that of the browse page. Learning resources can be launched from the search results pages. Learning resources can also be launched from either the Browse or Search results page, by clicking on the Start button located below the relevant thumbnail. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 7 02 LEARNALBERTA.CA ENVIRONMENT MORE INFORMATION PAGE Whether it’s Browse or Search functions being used, a learner has the option of getting more information about the learning resources by accessing the More Information page of a learning object. The learning object can also be launched from the More Information page of a particular learning object. THUMBNAILS It is recommended that developers produce a thumbnail for each individual project destined for the LearnAlberta.ca portal. The thumbnail should provide a good representation of the content or the title of the project, keeping in mind that users who do not read, will have little else to go on. Learning objects should be able to be launched by clicking on the thumbnail. 2.C WHERE LEARNING RESOURCES MAY BE USED It’s important to keep in mind that the learning resources that are produced may be used in a variety of situations by a variety of user groups. The same resource may be used quite differently from one situation to the next. As with any multimedia project, it is not only important to understand the audience, but to appreciate the context in which the product will be used. IN-CLASS In-class refers to a context where there is teacher-led instruction. Students may be in the classroom collaborating over a single computer, or they may be watching the teacher guide them through the learning resource using an overhead projector. IN-LAB Students may be in a school lab where a one-to-one computer/student ratio exists or small groups may be sharing a single computer. AT HOME Students may use the learning objects for self-study. They may not have been guided to these objects by their teacher, but discovered them on their own. When learners access resources at home, there may be any one of a variety of connection speeds ranging from modems to cable/DSL. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 8 02 LEARNALBERTA.CA ENVIRONMENT 2.D ADDITIONAL LEARNALBERTA.CA REFERENCE GUIDES There are two guides that will help the developer gain a further understanding of the LearnAlberta.ca portal: the LearnAlberta.ca User Interface Style Guide and the LearnAlberta.ca Usability Report. LEARNALBERTA.CA USER INTERFACE STYLE GUIDE This guide is an extensive style guide for the LearnAlberta.ca portal. Although this LearnAlberta.ca style guide does not directly apply to learning object development, it does detail the underlying design principles and rationale for the portal. LEARNALBERTA.CA USABILITY REPORT LearnAlberta.ca has gone through extensive usability testing to ensure that users from 5 years old and up can navigate the portal comfortably and effectively. Some developers may find it useful to familiarize themselves with the LearnAlberta.ca Usability Report in order to understand why certain design choices were made. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 9 03 DEPLOYMENT ENVIRONMENTS This section will describe the environment and the rules to which the learning objects must conform. These rules are derived from the LearnAlberta.ca Technical Specifications document, and references will be made where appropriate. This section is not a replacement for thorough understanding of the LearnAlberta.ca Technical Specifications document. 3.A PERFORMANCE FACTORS There are some key factors that should be considered when looking to maximize performance across different CPU levels. Minimum Hardware Requirements are defined in the Technical Specifications document and it is important to review these requirements before development begins. To ensure the best playback possible on low-end systems, the following factors should be considered during the development process. ANIMATION Avoid using large amounts of key-frames while animating as this easily taxes the CPU and dramatically increases the file size. Make use of the tweening technology readily available in most of the relevant authoring packages. Try to avoid excessive amounts of motion and size tweening when animating within large portions of the screen. For further optimization, make use of mathematical tweening when deemed applicable, particularly for simple and replicable elements. TRANSITIONS In general, transitions should be avoided for routine navigation. They should be used sparingly over large areas as complex cross-fades and dissolves will hinder the user experience, particularly on lowend systems. Alpha transitions and blending is especially demanding on the CPU, and should be used carefully. VECTOR GRAPHICS Given the compact yet scalable nature of the vector-based imagery, it is certainly beneficial to the overall file size and performance of the learning object. Above a certain level of complexity, vector imagery can become very demanding to render and animate, as it is drawn on the fly. Try to use vectors consisting of relatively simple shapes and fills, and pre-render the more complex forms of imagery into a bitmap. RASTER GRAPHICS Bitmaps are often employed in relief of vector graphics for the display of more photographic forms of imagery. However, they can still be relatively demanding on the CPU when animated or scaled on the fly. Manipulate these type of images sparingly, and avoid animating very large bitmaps altogether. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 10 03 DEPLOYMENT ENVIRONMENTS EMBEDDED FONTS When possible, try to defer to a default system font (e.g. generic Sans-Serif). Embedding the required outlines for a font set directly affects the file size, and in some cases, performance of the object. Using different font styles within a set can also have similar ramifications. CODECS Modern generation video CODECS like Sorenson 3, WMV 8, or MPEG 3, are very CPU intensive and generally will not run on low-end Macintosh or Windows machines. Older CODECS like Sorenson 2 are easier on older CPUs running sub 300 MHz. However, as these CODECS do not use delta frames, running video in reverse will be VERY CPU intensive even on 800 MHz machines. PERFORMANCE TESTING Developers should test their project on their own to ensure quality playback performance has been achieved on the minimum hardware requirements as defined in the Minimum Hardware Requirements in the Technical Specifications document. TWO VERSIONS – FULL AND LITE There may be occasions in which learning resources are developed with a motive to push the envelope with respect to the production level, often resulting in performance issues on lower-end systems. In such cases, it is highly recommended to offer FULL and LITE versions of the learning object, to accommodate both low and high end deployment CPU levels/systems. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 11 03 DEPLOYMENT ENVIRONMENTS 3.B DISPLAYS The following will discuss a few key quality assurance points, to ensure the best possible experience across multiple platforms. PROJECT DIMENSIONS All projects must be adaptable to a screen resolution of 800 x 600 pixels. Plug-in based learning objects must be 750 x 500 pixels. These dimensions take into account browser chrome, and OS menus and status bars, while still trying to best utilize the standard screen aspect ratio. Please review the Minimum Hardware Requirements of the Technical Specifications document for additional display settings. GAMMA The default gamma settings for Windows and Macintosh monitors are different. Windows is 2.2, rendering the screen darker compared to a Macintosh with a gamma of 1.8. Therefore, when authoring, you should set your gamma to 2.0. You are still responsible for testing of gamma levels of all images, and you should always do so on a CRT monitor as gamma displays poorly on LCD. TEXT SIZE You should be aware that the default rendering of screen type is based on 96dpi for Windows, and 72dpi for Macintosh. Type sizes on a Macintosh generally appear about two point sizes smaller than on Windows. This can be exacerbated with certain fonts. See more detail regarding font choices in Section 6. OTHER DISPLAY CONSIDERATIONS Projectors can present challenges for the effective display of an interface. This needs to be taken into consideration, as this is a common element in a classroom setting. Light-coloured text and graphics can ‘wash out’ and be illegible. Be sure that any integral or functional graphical elements, such as critical navigation or rollovers, are sufficiently dark and/or high in contrast, to ensure it is easily viewed in this display environment. To guarantee the best results on both LCD and CRT displays, ensure that any image-based (rasterized) text has a strong level of anti-aliasing. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 12 03 DEPLOYMENT ENVIRONMENTS 3.C BROWSER NAVIGATION BAR AND BROWSER CHROME Each learning object is presented within a basic pop-up window, with the toolbar, address bar, and all other utilities disabled. Although this solves many issues in presenting the learning object, it also creates a few, such as those below, which need to be resolved. PRINTING Printing may be handled by invoking the native print function using JavaScript. The function should launch the standard print dialog, just as the browser button would. Similar methods of printing also exist within the Shockwave and Flash environments. NAVIGATION The navigational path must be clear and concise within the learning object. For objects containing more than two levels, additional methods such as ‘breadcrumbs’ should be considered. SCROLLBARS AND WINDOW SIZE You may set the window size of a pop-up, but you may not disable the scrollbars, or lock the window. For example, users may have their default text size set higher to address projectors or a visual disability. 3.D ACCESSIBILITY STANDARDS The W3C Web Accessibility Standards should be considered during the creation of all learning objects. For more information on Web Accessibility Standards, please visit the W3C Website: http://www.w3c.org/TR/WCAG10/ K-3 CONSIDERATIONS Primary learners think in concrete terms, with little if any grasp of the abstract. They often do not recognize icons, so use them sparingly. Their motor skills are not yet fully developed so clickable elements need to be large. Bold colours, a liberal use of graphics, hidden mouse-over events, and loud sounds will provide this group with an enjoyable and engaging learning experience. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 13 03 DEPLOYMENT ENVIRONMENTS Text needs to be large and generously spaced to suit this age group’s newly acquired reading skills. Children at this age are taught to write in a particular manner, and might be confused when confronted with text that is displayed using standard Web fonts. Custom fonts, more appropriate for this age level, should be embedded or rasterized when possible, to help alleviate this issue. Simulated K-3 Penmanship: Sans-Serif (Helvetica) Typeface: Figure 3.1 - Typeface Comparison Please review Best Practices and General Issues for Learning Object Design in the Functional Design Guidelines document for additional accessibility considerations. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 14 04 THE LEARNALBERTA.CA WRAPPER 4.A WHAT IS IT? The LearnAlberta.ca Wrapper is a semi-flexible learning object UI component that contains some or all of a common set of specific content elements. We refer to these common elements as meta-content. The Wrapper is not vital to the functionality of the learning object. If it were to be removed, the functionality of the resource would remain unchanged. 4.B WHY DO WE NEED IT? In a word: orientation. Learners and educators should immediately recognize a LearnAlberta.ca resource. In the future, it may be possible to access non-LearnAlberta.ca resources from the LearnAlberta.ca portal so it is important that the user be able to clearly distinguish which resources are from LearnAlberta.ca, and which are not. From a usability and production standpoint, since every LearnAlberta.ca learning object will have a common brand and common meta-content elements, it makes sense to utilize a single common Wrapper across the board. Figure 4.1 - Default Wrapper Wireframe LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 15 04 THE LEARNALBERTA.CA WRAPPER 4.C WHAT IS ON THE WRAPPER? The meta-content that is on the LearnAlberta.ca Wrapper includes the following, beginning with the required elements: LearnAlberta.ca Icon The LearnAlberta.ca icon is a required element. It indicates that this is a LearnAlberta.ca resource. Copyright This is a required element and contains all necessary copyright information, and terms of use. Parent Guide This element is not always applicable to every learning object, but if it does exist, it will contain certain support information about the learning object, specifically targeted to the parent. PD Materials This element is not always applicable to every learning object, but if it does exist, it refers to professional development materials for teachers. Acknowledgements This element provides access to the various credits and legal acknowledgements for the particular learning object. Feedback This is an element that provides a means of submitting feedback about the learning object (either by way of an active Web form, or by providing contact information to the user). 4.D WHAT IS NOT ON THE WRAPPER? Help It is recommended that all help content related to a learning object be provided within the context of the learning object itself. General help is provided elsewhere on the LearnAlberta.ca portal. Object Navigation Any navigational element used within the learning object itself must not be displayed in the same manner as a Wrapper element. This is done to ensure that the Wrapper can be removed, without affecting the functional design of the learning object. Language Selection The selection of language is dealt with through a separate mechanism on LearnAlberta.ca. It should not be included on the Wrapper or within the individual learning object. For multi-lingual resources, language selection should be presented within the learning object itself. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 16 04 THE LEARNALBERTA.CA WRAPPER 4.E WHAT ARE THE RULES? WRAPPER WINDOW DIMENSIONS The default size of the window is 750 x 500 pixels. WRAPPER ELEMENT DIMENSIONS & POSITIONING With the exception of the LearnAlberta.ca Icon, each of the following elements has been given explicit boundaries, which should not be exceeded by their respective labels. By default, all elements are given a padding of 5 pixels. The positioning instructions for these elements must be adhered to, to ensure a consistent user experience across learning objects. LearnAlberta.ca Icon The region for the icon is set at 85 x 55 pixels. The size of the icon must allow for an ample amount of padding (between 10 and 15 pixels) within this region, keeping its visual definition clear. The icon is positioned within the left-most region of the wrapper. Parent Guide Dimensions of 115 x 20 pixels have been allocated to this region. Not all objects have a Parent Guide element, but for the ones that do, this element is situated to the right of PD Materials, and above the feedback button – all of which are aligned within the right-most region of the wrapper. PD Materials Dimensions of 115 x 20 pixels have been allocated to this region. Not all objects have a PD Materials element, but for the ones that do, this element is situated to the left of Parent Guide, above the feedback button – all of which are aligned within the right-most region of the wrapper. Copyright Dimensions of 200 x 20 pixels have been allocated to this region. This item is situated to the right of the LearnAlberta.ca Icon, and above Acknowledgements. Acknowledgements Dimensions of 200 x 20 pixels have been allocated to this region. This item is situated to the right of the LearnAlberta.ca Icon, and below Copyright & Terms of Use. Feedback Dimensions of 115 x 20 pixels have been allocated to this region. This element is found below the Parent Guide, aligned within the right-most region of the wrapper. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 17 04 THE LEARNALBERTA.CA WRAPPER POSITIONING & WEIGHTING CONSIDERATIONS Navigational components and other forms of content internal to the learning object should not share the same location and weighting as the Wrapper elements. Although certain proximity is permitted, appropriate spacing must be given to the Wrapper elements in order to ensure a separation between the content and the meta-content. WHAT TO DO WHEN META-CONTENT ELEMENTS DO NOT EXIST In cases where certain meta-content pertaining to a Wrapper element does not exist (most commonly the PD Materials, or Parent Guide), the meta-content label should be removed entirely from the Wrapper. However, other Wrapper elements must not be repositioned in their absence, and no ‘new’ elements may take their place. The space for these elements must be left blank on the Wrapper. 4.F LEARNALBERTA.CA ICON TREATMENT As stated earlier in this section, the LearnAlberta.ca icon must always be placed in the lower left-hand corner of the learning object. The region for the icon is set at 80 x 40 pixels. The size of the icon must allow for an ample amount of padding (between 10 and 15 pixels) within this region, keeping its visual definition clear. The icon alone, without the “LearnAlberta.ca” text, must be presented in its entirety, and must also be of the original aspect ratio. Utilizing the source EPS files will ensure the best logo quality – avoid repurposing a bitmap. Furthermore, the logo must not have any interactive attributes, as it is a static identifier. In terms of visual treatment, there are three options: 1) to watermark the icon, however it must be easily discernable over the background of the region. 2) to use the native colour or greyscale schemes found in the EPS source files 3) to use a flat white or black version of the icon – whichever is considered to be more discernable over the background of the region. RIGHT: WRONG: Figure 4.2 - The logo should not adopt the colour scheme of the learning object, as it will depreciate the LearnAlberta.ca brand. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 18 04 THE LEARNALBERTA.CA WRAPPER 4.G FUNCTIONAL DESIGN LearnAlberta.ca Icon As stated in 4.F above, there must not be any interactivity whatsoever associated with this element. Labeled Elements With the exception of the LearnAlberta.ca icon, all elements on the Wrapper are text-based labels. These labels may be true text, using the recommended Verdana and Helvetica fonts, or rasterized text, for more customized treatments. Figure 4.3 - Each label should be underlined to indicate that it is clickable, and must have rollover, active, and visited states. 4.H MUST BE REMOVABLE To accommodate reuse, the Wrapper must be removable, without affecting the function of the learning object. Programmers and designers should view the Wrapper as an independent object, which can easily be removed within the original authoring application. Visually, the resource can appear to be a self-contained unit, but care needs to be taken not to confuse the learner into thinking that these items are integral to the function of the resource. Figure 4.4 - Removable Wrapper Example 4.I VISUAL TREATMENT GUIDELINES While the placement and functional design of the Wrapper elements are set, the visual treatment of them has more leeway. The Wrapper elements may follow the look and feel of the learning object, but care needs to be taken as not to confuse these elements with the actual navigational elements of the learning object. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 19 04 THE LEARNALBERTA.CA WRAPPER 4.J SOME EXAMPLES Here are a few examples (good and bad) of the Wrapper being applied to a learning object. Figure 4.5 - Blended Wrapper Example (Good) Figure 4.6 - Button Style Wrapper Elements (Bad) LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 20 04 THE LEARNALBERTA.CA WRAPPER Figure 4.7 - Contained Wrapper Example (Good) LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 21 05 FUNCTIONAL DESIGN This section will define the expected behaviour of various elements that may be present within a learning object. These guidelines are constructed so that the design parameters are as flexible as possible in the development process. 5.A GUIDELINES FOR COMMON ELEMENTS INTERNET DETECTION AND FEEDBACK FUNCTIONALITY Given that learning objects can be launched in both online and offline environments (on CD), and there is a required Feedback element, all learning objects should have an Internet detection function built into the Feedback function. The Feedback element requires the following functions: 1) If online, the Feedback element should yield an active Web-form, where the user may submit Feedback over the Internet. 2) If offline, the Feedback element should display the contact information only. This may include the appropriate telephone number, address, and contact name. This permits the user to provide Feedback by other means than electronic. HYPER-LINKS Visual Links should look like links. Their colour should be in contrast to the surrounding text, and they should be underlined. Functional Hyper-links need to provide visual user feedback, particularly upon rollover. Other standard hyper-link states, such as Visited, and Active, are highly encouraged. EXAMPLE: Paragraph Text … Standard Link … Rollover Link … Active Link … Visited Link Educational Considerations Book citations use underlined text. Ensure that a book citation is treated similarly to the surrounding textual content, and that any links are presented in a different colour for all states. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 22 05 FUNCTIONAL DESIGN OFF-SITE OR EXTERNAL LINKS Visual Off-site links present an interesting challenge. Using glyphs (such as a globe or exit arrow) is not advisable, as this will make external links appear more prominent than regular links, which is probably not desired in most cases. Also, these types of glyphs are simply not universally understood. A better approach is to try and ensure that off-site links are not placed within a paragraph of content, and are instead placed on their own below the content or in a contextual side bar. The link should have a descriptive label, and include the URL in brackets when possible. EXAMPLE: Please visit The Government of Alberta (www.gov.ab.ca) for more information. Functional Off-site links should function just like standard links. The preferred Web practice encourages launching external links in the active browser window. However, this is not the case for learning object development. It is HIGHLY recommended that off-site links launch in a new window. It is highly probable that the learner will want to jump back to the learning object at the state he or she left it. As noted above, a URL is best presented in brackets, however, this is not always practical with very long, cryptic links. For more information on off-site links, please review Section 2.23 - Internet Links of the Functional Design Guidelines document. USER RESPONSE ELEMENTS User response elements should have a minimum consistency across learning objects. For example, a Checkbox must behave like a Checkbox, no matter how it is developed (Flash, QuickTime etc.). The following are some of the more common user response elements used in learning object development: Drop-Down Menus Visual Each menu should be visually contained, using a border, bevel, or drop shadow to suggest an interactive element. It should include a visual cue to the right to indicate what sort of behaviour the learner should expect. A downward or up/down arrow is the most common choice. A default selection or label, indicating that the user should make a selection, must be visible within the element. ������ ���� � ������������ ������ ���� � ������������ ���� ������ ���� ������ ���� ������ ���� ������ �������� ���� ������ LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 23 05 FUNCTIONAL DESIGN Functional The entire element must be clickable. While making a menu selection, the rollover items need to be highlighted. This is usually done with a boxed region around the particular item on the list. It is preferable if the actively selected item is accompanied by a bullet or check mark while the menu is displayed. To accommodate a long list of items, implemented a scrolling mechanism to the menu. Checkboxes Visual Not surprisingly, a Checkbox must be a box of some sort. They can be selected with either a checkmark, or an X. Under no circumstances should it be selected with a dot, as this will cause confusion with radio buttons. ���� � ���� � Functional The box is a clickable item, but the text label (or image) presented with each Checkbox should also be clickable. Allow for more than one check box to be selected at a time. Checkboxes should toggle (checked and unchecked) when they are clicked a second time. ���� � Educational Consideration Checkboxes can be used when using a format that asks the learner to answer by ‘clicking all that apply’. Radio Buttons Visual A Radio Button must be circular or spherical in shape. They may be selected with some style of bullet. Functional Like the Checkbox, the Radio Button is a clickable item, and the text label (or image) presented with each Radio Button should also be clickable. Only one item may be selected at a time. Once a Radio Button is selected, it cannot be toggled off, by clicking the item again. Selecting a subsequent Radio Button within the given context will result in the former Radio Button being deselected. ������ � ������ � ������ � Educational Consideration Radio Buttons can be used in a multiple-choice context where only one answer is required. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 24 05 FUNCTIONAL DESIGN Text Fields Visual A Text Field must be clearly defined by a border, containing a white region where the learner may type textual content. It is permissible to use a different colour than white for the region, so long as it is highlighted compared to the UI background and text is well contrasted. ����� ����� ���� ����� ���� ������ When the Text Field is active, a blinking text-style cursor, common in word processors, should be displayed within the highlighted region. The cursor is most often displayed as a vertical rule or block. Functional The Text Field is activated by tabbing, or by direct selection with a mouse. When multiple-lined fields are used, there must be a set of scroll bars present, unless some form of character limiter is in effect. Selection Lists Visual Each list must be visually defined using a border, and contain a white, or highlighted region. Each list item must be presented on its own line and scroll bars should be employed for longer lists. Functional Clicking on any line item within the list will toggle the highlighted state of the list item on or off. For more information, please review Section 7 – Learner Response Models Described of the Functional Design Guidelines document. ���� ������ ���� ������ ���� ������ �������� ���� ������ ���� ������ �������� ���� ������ RESOURCE DOWNLOADING Occasionally it is necessary for a learning resource to enable the learner to download an external file to their desktop. On the Web, download links look exactly the same as any other link. Therefore, it must be ensured that the learner understands that a particular link will start a download procedure. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 25 05 FUNCTIONAL DESIGN Visual These links should clearly state, “Download” within the descriptor. Other pertinent information such as an icon denoting the type of file being downloaded (e.g. Word, PDF, etc.), should be included to indicate what the user will be downloading. However, do not rely solely on a PDF, or similar icon, to relay any meaning to the learner. Here is a summary of valuable information that could be included: - File Size (in Bytes) - File Type (Word, PDF, TIFF, etc.) - File Name - File Description EXAMPLE: Download The Documentation (1.2MB PDF File) Functional Clicking ‘download’ should initiate the download process, based on the system preferences of the user. If there are instances where the user is not taken directly to the resource (i.e. by a download tracking and/or re-directing mechanism), a direct link must still be provided as a contingency step, in the event of a malfunction. STATUS INDICATORS Loading Loading indicators must be employed when initially loading a Flash. QuickTime, or Shockwave based learning object, and when loading individual components into an existing interface. Visual A loading mechanism should be displayed as some form of container, which fills up as the loading takes place. Indicators may be accompanied with either textual or numeric information. However, it is not satisfactory to have textual or numeric information without the loading bar. Functional The percentage of the container filled should directly correlate to the percentage downloaded. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 26 05 FUNCTIONAL DESIGN Do not rely on loading indicators as a satisfactory solution to large and time intensive downloads. Multimedia projects should be constructed in such a way that perceived download time is always at a minimum. Rather than loading a project all at once, try chopping up a project into smaller components, and loading only what is needed to start the application. Once the learner is engaged in the project, the application can load subsequent components in the background. Progress Progress indicators usually come in the form of a video play head. However, progress indicators can also be utilized to convey the status of a given task, or set of tasks. Playback Progress A playback head represents the current location in time for the playback of rich media. It is recommended that this element be a dragable handle, so the user may track to various locations in the given clip. If the loading status is present, it is recommended that it be placed underneath the playback head. Task Progress Similar to the aforementioned loading mechanism, this form of progress should be displayed as some form of container, which fills up as the user advances. Appropriate indicators may be accompanied with either textual or numeric information. However, it is not satisfactory to have textual or numeric information without the loading bar. In some cases it may be important to indicate progress in discreet steps, such as Step 1 of 5, Step 2 of 5, etc. In these cases a visual continuum of steps should be provided. The steps should be links, which allow the learner to easily jump back to a specific step and redo it. Naturally, steps that have yet to be completed should not be active/clickable in the continuum. Computation Occasionally, an application may need to use a number of CPU cycles to perform a calculation before displaying the results back to the learner. With respect to acceptable time durations, a common misapplied rule-of-thumb in Web design is to allow 10 seconds. Application developers would never even let the user go 1 second without providing some form of active feedback. It only takes a few seconds for a user to think that something may have gone wrong. It is therefore important to provide a computation indicator for the learner, whenever there is a risk that a computation takes longer than 3 seconds on the minimum requirement computers. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 27 05 FUNCTIONAL DESIGN Visual Indicators for Ten (10) Seconds or Less For computations that will take less than 10 seconds, the most universally recognized symbol for an ongoing computation is to indicate the passage of time. A watch or hourglass is very common. Other symbols that can spin, rotate, or osculate are also being used, but these symbols are not generally as representative of the passage of time. Indicators for Over 10 Seconds In situations where the wait will likely be over 10 seconds, a spinning ball or osculating hourglass is not appropriate, as these may incorrectly indicate an irrecoverable loop in the application. When waits are expected to be over 10 seconds, the indicator must explicitly tell the learner that such a wait should be expected. Ideally, an approximate estimate should be provided with a count down if possible. Functional Whatever image is chosen to display the passage of time, it needs to be animated; an hourglass should osculate and a beach ball should spin. It is important that loading indicators are not used to convey computation. 5.B MEDIA CONTROL ELEMENTS Many of the LearnAlberta.ca media controls will have a rather strict treatment to ensure a consistency in expectations across learning objects. That being said, the treatment of these elements may still be applied with the visual theme of the learning object. GENERAL SLIDERS Visual A slider is comprised of two elements - a shuttle and a track. The shuttle is represented by a type of handle, which overlays the horizontal or vertical track. The appearance of the track may be solid, or beveled. Functional The shuttle slides along the full length of the track. It cannot be moved off the track. Dragging the shuttle between minimum and maximum, even while the mouse is outside the track area, must directly affect the position of the shuttle. This can be experienced by dragging the scrollbars on a browser or word processor. Note that if the cursor moves off the shuttle while the mouse is still down, scrolling remains active. Clicking anywhere on the track must also relocate the shuttle to the selected location. Application Common applications for sliders are for control of attributes such as volume, equalization, balance, brightness, and contrast. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 28 05 FUNCTIONAL DESIGN GENERAL ADJUSTMENT BUTTONS Visual Buttons used for ‘increase’ and ‘decrease’ should be in the form of a Plus and a Minus sign, respectively. There must be a visual indicator in close proximity, or between the two buttons, which displays the current level in discernable increments. Holding down either of the buttons should continuously perform the given funtion, until the extent of the function has been reached. Functional Clicking the Minus button incrementally reduces the level, and the state of the corresponding visual indicator. Clicking the Plus button incrementally increases the level, and the state of the corresponding visual indicator. Both the Plus and Minus buttons should have rollover and active states. Application Common applications for adjustment buttons are to control attributes such as volume, equalization, brightness, and contrast. PLAYBACK CONTROLLERS Playback controllers share the same concept as a VCR or DVD controller. While there is some visual flexibility within brands of DVD players and VCRs, playback controls still have a rather strict treatment to ensure consistent expectations across the board. The same goes for digital media playback controllers but again, the visual treatment of these elements may still adopt the visual theme of the learning object. It is suggested that these control elements be given a buttonstyle treatment, meaning they should be presented within a pronounced shape, such as a square or circle, and must exhibit, up, over, and down states. Go to Beginning/ End Visual These buttons must each contain an isosceles triangle, pointing left or right, for the beginning and end respectively. A vertical line of equal height must be adjacent to the vertex point of each triangle. Functional These buttons send the play head to either the beginning or the end. Unless there is a very good reason, it is suggested that the Go to End button not be used. In most cases where this button might be used (chapters), the Next button is more suitable. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 29 05 FUNCTIONAL DESIGN Rewind Visual This item must contain two isosceles triangles, with both vertexes pointing left. Functional This item is generally used for moving video backwards, often at a speed multiple of 2X. When a video is in rewind mode, the video should be seen moving in reverse. NOTE: For digital video using beta frame only CODECS, rewind is a highly CPU intensive process. Fast Forward Visual This item must contain two isosceles triangles, with both vertexes pointing right. Functional This item is generally used for moving video visually forward at a speed multiple of 2X or more the ‘play’ speed. When a video is in Fast Forward mode, it should be seen moving at the higher speed. Play Visual This item must contain a single isosceles triangle, with the vertex pointing right. This item may be visually weighted larger than its counterparts (Fast Forward, Rewind, etc.). Functional This item is used to play linear media at normal speed. The Play button may toggle with the Pause button when clicked. The Pause button is displayed when the media is playing and the play button is displayed when the media is paused. In this case, the Pause and Play buttons must have the same visual weightings. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 30 05 FUNCTIONAL DESIGN Pause Visual This item must contain two thick parallel lines, situated vertically. Functional The Pause button is used to stop playback. However, when the Pause button is clicked, the media must still remain visible within the viewer at the precise point when the Pause button was clicked. The Pause button may toggle with the Play button when clicked. If so, this button must have the same weighting as the Play button. Stop Visual This item should be represented by a perfect square. Functional The Stop button is used to stop the media from playing, turn the media viewer off, and return the playback head to the start of the timeline. Because it is returning the play head to the start, this button is rarely used for digital media on the Web. If this were the desired functionality, then the Go to Beginning button (see below) would be a preferable choice. Previous Visual This item should be represented by a two isosceles triangles, pointing left and adjacent to a vertical line of equal height at the outermost vertex. Functional This item is generally used for going to the previous slide, screen, or chapter. Next Visual This item should be represented by a two isosceles triangles, pointing right and adjacent to a vertical line of equal height at the outermost vertex. Functional This item is generally used for going to the next slide, screen, or chapter. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 31 05 FUNCTIONAL DESIGN VOLUME ADJUSTMENT When audio is being presented, it is highly recommended to have volume control. This control may be handled three ways – a slider, adjustment buttons, or preset buttons. An appropriate icon should accompany this control – the speaker is a common example. Furthermore, a Mute Check Box should accompany the volume control element. Please see the Check Box definition, found earlier in this section, under User Response Elements. Sliders Visual A slider is comprised of two elements - a shuttle and a track. The shuttle is represented by a type of handle, which overlays the horizontal or vertical track. The appearance of the track may be solid, or beveled. It is advantageous that secondary indicators visually illustrate the present volume level. For example, Real Player uses a crescendo over the sliding bar and QuickTime uses individual sound waves coming from a speaker. Functional The shuttle slides along the full length of the track. It cannot be moved off the track. Dragging the shuttle between minimum and maximum, even while the mouse is outside the track area, must directly affect the position of the shuttle. This can be experienced by dragging the scrollbars on a browser or word processor. Note that if the cursor moves off the shuttle while the mouse is still down, scrolling remains active. Clicking anywhere on the track must also relocate the shuttle to the selected location. Dragging the slider to the right increases the volume, while dragging to the left decreases the volume. Adjustment Buttons Visual Buttons used to increase or decrease volume should be in the form of a Plus and a Minus sign, respectively. There must be a visual indicator in close proximity, or between the two buttons, which displays the current volume level in discernable increments. Functional Clicking the Minus button incrementally reduces the volume, and the state of the corresponding visual indicator. Clicking the Plus button incrementally increases the volume, and the state of the corresponding visual indicator. Holding down the Minus or Plus buttons should continuously modify the volume, until the minumim or maximum volume has been reached. Both the Plus and Minus buttons should have rollover and active states. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 32 05 FUNCTIONAL DESIGN Preset Buttons Visual When using preset volume buttons, there should be at least three levels present – Minimum, Medium, and Maximum. Each button should contain an icon of some type indicting volume and its corresponding level. Functional Clicking each of the buttons sets the corresponding volume to the predefined level. Each of the buttons should have rollover and active states. Balance Visual Balance is another slider, and as such, it is comprised of two elements - a shuttle and a track. The shuttle is represented by a type of handle, which overlays the horizontal or vertical track. The appearance of the track may be solid, or beveled, the shuttle located at the centre by default. A mirrored speaker icon may represent Balance, while the track itself should have (L|R) at the respective end points, representing the stereo channels. Functional The shuttle slides along the full length of the track. It cannot be moved off the track. By default, the element provides equal volume in both channels, as it the shuttle is centered between the stereo channels. Dragging the shuttle left and right, even while the mouse is outside the track area, must directly affect the position of the shuttle, and the audio balance accordingly. Clicking anywhere on the track must also relocate the shuttle to the selected location. ADDITIONAL CONTROLS Play Head The Play Head is a special kind of slider. The play head differs from regular sliders in that the beginning and end of the track represents the beginning and end of the media timeline. The play head also automatically moves along the time line while the movie is in Play, Fast Forward, or Rewind modes. Visual Like all sliders, it is comprised of two elements - a shuttle and a track. The shuttle is represented by a type of handle, which overlays the horizontal or vertical track. The appearance of the track may be solid, or beveled. Functional The play head slides along the full length of the track. It cannot be moved off the track. Dragging the play head the length of the track, even while the mouse is outside the track area, must directly affect the position of the play head, as well as the current playback location. Clicking anywhere on the track should relocate the play head to the selected location. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 33 05 FUNCTIONAL DESIGN Brightness Visual Brightness should be represented by an image of a light bulb, the sun, or any other established symbol of luminosity. Application Either a slider or a set of adjustment buttons may be used. Please review the general definitions for each, found earlier in this section. Contrast Visual Contrast should be represented by a symbol, which basically contains two highly contrasting halves. Application Either a slider or a set of adjustment buttons may be used. Please review the general definitions for each, found earlier in this section. 5.C NAVIGATIONAL ELEMENTS Navigational elements should be used for moving from one presentation element to another, similar to navigating within a browser. General Buttons Buttons should look like buttons. They should be visually contained, using a border or similar alternative, to suggest interactivity. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 34 05 FUNCTIONAL DESIGN Close Visual The Cose button should be illustrated by an X, encased within a region. Functional The Close button should close its corresponding window. Additional Considerations The Close button should be used when a new region of content pops open over another, like a second window on a desktop. It should be slightly offset, and visually smaller than the preceding region from which it was opened. If a region perfectly overlaps another region, there is no way for the learner to understand that something has opened ‘over’ the previous region. It looks like a new page. In this case, the ‘back’ element may be warranted. Back Visual The Back button should be represented by a single directional element, pointing left. Functional This item is generally used for going to the previous page or screen. Within this context, do not use it to go to the beginning of a sequence. A rollover state is recommended for this item. Forward Visual The Forward button should be represented by a single directional element, pointing right. Functional This item is generally used for going to the next page or screen. Within this context, do not use it to go to the end of a sequence. A rollover state is recommended for this item. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 35 05 FUNCTIONAL DESIGN Scrollbars Scrollbars are required when a single piece of displayed content exceeds a predefined region. If content can be broken into smaller pieces, then consider presenting the content using more than one page or screen. Visual Although it is a type of slider, the appearance of the scroll bar is much like the progress bar, in that it is a contained region. This region contains the tracking area for the contrasting scroll handle. Scroll arrow buttons must be situated at each end of the scroll bar. Functional Clicking and dragging the scroll handle, even while the mouse is outside the scrollbar area, should directly effect the position of the handle, as well as the contents of the scrollable area, in real time. Clicking the scroll arrow buttons will shift the scroll handle, and the contents of the scrollable area. Holding down these buttons should continuously shift the scroll handle, and the contents of the scrollable area accordingly as well. Active states are required for both the scroll handle, and the scroll buttons. Search Widgets These components must be clearly marked with either an appropriate text label, or descriptive icon, such as a magnifying glass. A Submit button should also be present, preferably containing the text, Search. ������ ��� ��������� ������ Please review Section 5 – Button Types and Functions of the Functional Design Guidelines document, as well as the LearnAlberta.ca User Interface Design Guidelines. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 36 06 GUIDELINES FOR CONTENT PRESENTATION 6.A TEXT CONTENT RASTER & TRUE TEXT True Text Because of the significantly low resolution of computer displays compared to print, it is recommended that two common sans-serif fonts be utilized, Verdana & Helvetica. These fonts are specifically designed for the Web, and are common across both Macintosh and Windows platforms. Embedded Fonts For resources authored in Flash and Director, custom fonts must be embedded. These fonts should also accompany all source file deliverables. Please note that embedding fonts does not allow for a carte blanche to use any font desired. Display limitations must always be taken into account. The developer should justify choosing a font other than Verdana & Helvetica, especially if it is not sans serif. Headlines Headlines should not be underlined, as this will be confused with active links. Instead, use bold and an increased font size. Educational Considerations There may be specific issues to consider when dealing with Language Arts learning resources, particularly for K-3 learners. For example, displaying text using certain fonts may have cognitive ramifications, as learners in this age bracket are taught to write letters in a particular manner. In such cases, a ‘Web-friendly’ font may not be advisable. But when using non-standard fonts, care needs to be taken to test across a number of displays, systems, and resolutions. Simulated K-3 Penmanship: Sans-Serif (Helvetica) Typeface: Figure 6.1-TypefaceComparison LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 37 06 GUIDELINES FOR CONTENT PRESENTATION HYPER-LINKS Visual Basically, links should look like links. Their colour should be in contrast to the surrounding text, and they should be underlined. Function Hyper-links need to provide visual user feedback, particularly upon rollover. Other standard hyper-link states, such as Visited, and Active, are highly encouraged. EXAMPLE: Paragraph Text … Standard Link … Rollover Link … Active Link … Visited Link Educational Considerations Book citations use underlined text. Ensure that a book citation is treated similarly to the surrounding textual content, and that any links are presented in a different colour for all states. 6.B THUMBNAILS If thumbnails accompany synopsis type information, while providing access to more detailed information, then thumbnails must be clickable to allow for this access. Clickable elements, such as buttons, must appear to be interactive. This is done by a beveled treatment and/or an animated rollover state. Figure 6.2 - Thumbnails are also used as small previews for larger images. In such cases, an enlarge button or link should be provided, preferably along the bottom of the thumbnail. The ‘enlarge’ label is usually accompanied by a plus sign, or magnifying glass. ������� When presenting enlarged images in a pop-up window, please employ the Rich Media Wrapper, detailed on the next page. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 38 06 GUIDELINES FOR CONTENT PRESENTATION 6.C RICH MEDIA PRESENTATION Media Wrapper In the event that a pop-up window is needed to present video, audio, or imagery, a small Wrapper must be applied to frame the content. This Wrapper should be given a similar treatment to that of the LearnAlberta.ca learning object Wrapper. Please see Section 4 of this document for more information and the specifics on the treatment of its elements. The horizontal measurement of the window should be the width of the given media, plus 25 pixels on each side. The vertical measurement must be the height of the media, including 50 pixels on the top and bottom. This provides the necessary spacing for the wrapper elements. There are three required elements for this Wrapper: 1) the LearnAlberta.ca icon 2) a close button 3) a copyright statement The LearnAlberta.ca icon must be presented at the bottom left. A close button must be situated in the top righthand corner of the window. Figure 6.3 - Media Wrapper The name of the given media must be present in the title bar of the window, and may also be included above the media iteself. The footer of the Wrapper should contain a brief copyright statement. REQUIRED ELEMENTS Controls Ensure that users have control over their media. Pause, Restart (Go to Beginning), and Play buttons must be available. Volume controls are also recommended. Status Indicators When media is of a significant duration, it must provide a download bar, and a playhead. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 39 07 CODE DOCUMENTATION AND MEDIA CREATION This section outlines the high-level requirements that all developers must satisfy with the delivery of a learning object. 7.A PROGRAMMING COMMENTED CODE Source code delivered with a project must be documented in such a way that a different development team would be able to easily understand, maintain and/or redevelop any part of the program. To enable this priority the developer is required to thoroughly document source code. Follow these guidelines when commenting source code: • Each file containing source code must contain a documentation header, including the component name (if applicable), description and purpose, and modification history (including the author). • Every non-trivial function or method must be preceded by a commented header that describes that function, its properties and arguments. Comment any code that would not be immediately understood, either in the header or within the body of the function. • Programmers should incorporate commenting into the ongoing coding workflow, rather than commenting after the fact. • Document code where choices were made between different programming solutions, and explain why the solution was adopted. • Comments in the code should alert other programmers to any unusual scripts, issues or workarounds. The following are suggested terms to highlight particular issues: // :BUGFIX: Comment on known issues and their resolution. // :KLUDGE: Indicates the code in this area is not elegant or may be a workaround. Should give details of the problems encountered and why the workaround was used. // :TRICKY: Indicates that this code has a lot of interactions and that it should not be modified without careful consideration. // :TODO: Indicates that more work is required on this code and suggests strategies for going forward with the code. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 40 07 CODE DOCUMENTATION AND MEDIA CREATION EXAMPLE: // :TODO: /* This loop will work with a limited numbers of iterations. When above 5000 iterations, it may begin to generate an error. If more than 5000 iterations are required, there will be a need to break up the array into a series of smaller arrays. */ See the requirements described in Section 8.A and 8.B, under ‘Commenting’ for media specific applications. READABILITY Programmers should write code with clear and meaningful language to produce readable and easy to interpret code. Programmers are required to follow best practices for the programming language and to apply a consistent style across the project. Methods and variables should have descriptive names and statements should be written so that the code is inherently ‘self-documenting’. Camel case is highly encouraged to facilitate comprehension of the script. The following is an example of good and bad names: // snippet of code for animating analog clock Good: Clock.hourHand. rotation = 360 * dayPercent + hourPercent * (360 / 12) Bad: Anaclk.hrhnd.rtn = 360 * dper + hper * (360/ 12) LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 41 07 CODE DOCUMENTATION AND MEDIA CREATION DOCUMENTATION A formal document must accompany each type of code-base that makes up the learning object. The documentation should discuss the overall architecture and functionality of the developed component or framework. A directory structure of all relevant resources must also be provided. This should give all file names (and extension) and a brief description. Wherever documentation requirements are described in section 8, they should be included in this document. 7.B GENERAL NAMING CONVENTIONS Source Files When creating new documents or elements, utilize the following standard, unless otherwise stipulated: [ui-component]_[name-of-element]_[optional-descriptor].[extension] For example, a rollover state for a menu item could look something like this: global-nav_home-over.gif Try to make the names as verbose as possible, while using common abbreviations to keep the filenames at a reasonable length. Layers within Photoshop The names of layers must be clearly indicative of the element contained therein. Layer sets should also be used and appropriately labeled based on constructive grouping. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 42 07 CODE DOCUMENTATION AND MEDIA CREATION 7.C DIRECTORY STRUCTURE Developers must set up their folder structure to conform to the following: �������� ������ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ��� ���������� ������������� ����� ������������ ����� ���� ������ ���������� ������ ����� ��� ���������� ��� ����������� ���� ���� ������� ������������������ ���������� ����������� This structure allows the files to be transferred as is from the delivery medium onto the LearnAlberta.ca Web server. Observe the following guidelines when implementing this file structure: 1) The index.html file should contain an object embed tag that references the startup.swf. 2) The startup.swf may, or may not, use XML that contains, for example, a menu that can reference imsmanifest_rt.xml (rt stands for runtime). 3) There should be only three files contained at the root level of any project that launch the resource. 4) The other folders are there for organization purposes only and are broken down as follows: a. asx – Windows Media Player SMIL files. These files tell Windows Media Player what movie to launch, the start and end times, the duration, etc. b. authorware – any Macromedia Authorware file (.dcr) c. documentation – all available developer documentation for the resource, including a PDF of the style guide (detailed in Section 9). d. flash – any compiled flash file (.swf) e. flash_source – any non-compiled flash file (.fla) f. fonts – all available fonts used in the project (Mac/Windows) g. html – any .htm or .html file h. image – any .jpg or .gif i. lsp_source – any applicable LiveStage files (.lsd) j. movies – any .mov or .avi. k. other – anything else that doesn’t fit within the folder structure l. pdf – any Adobe Acrobat .pdf m. powerpoint – any Microsoft Power Point file (.ppt) n. rtf – any rich text file o. runtimedocs – any .xml other than the root imsmanifest_rt. p. smil – QuickTime smil files (.smil) q. word – any Microsoft Word file (.doc) r. wrapper – all resources related to the Wrapper 5) This folder structure can and should be modified as new technologies require. 6) Developers can create subfolders within any of these root folders for easier maintenance. For example, html might contain Lesson 1, Lesson 2, etc. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 43 07 CODE DOCUMENTATION AND MEDIA CREATION 7.D IMAGE FILES Creation of Droplets for Common Elements (Photoshop) For elements such as thematic buttons and other consistently treated images, it is recommended that Photoshop droplets be created, and included as part of the final deliverable of the learning object. Layered Source Files Source artwork such as files in Photoshop format must be layered with any attributed layer effects intact. These files must also be included in the final deliverable of the learning object. EPS for Vector Artwork There are many vector formats available to developers. However, the EPS format is most commonly used between Web and print environments, and thus should be the native format utilized in the final delivery of vector resources. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 44 08 MEDIA SPECIFIC DEVELOPMENT 8.A FLASH The developer must ensure that projects developed in Flash are built so they can be easily edited, revised, and repurposed by other developers. Special efforts must be made to organize and document the project to enable this requirement. STRUCTURE Flash movies passed between developers can be extremely difficult to interpret. Movie structure is a critical concern. Projects must be built with an obvious and consistent organization of content. This applies to scenes, movie clips, interface elements, and dynamically loaded content. The developer must include separate text files or diagrams (see section 8b) that describe the structure of the movies, the organization of movie clip instances, the uses of objects, and the placement of code. The organization and hierarchy of dynamically loaded movies and content must also be explained in these documents. Include the location of any internal documentation, file naming conventions and media asset naming protocols. Projects should be designed with granularity in mind. Reusable components of the project, media elements, movie clips, movies, etc. should be as self-contained as possible. PROGRAMMING Make the code accessible and easy to interpret. Programmers should make a high priority of developing code structures and language that are clear and easy to understand by other developers. All programmers should be familiar with the Macromedia white paper “ActionScript Best Practices” and adopt these best practices where applicable. http://download.macromedia.com/pub/devnet/downloads/actionscript_standards.pdf Names for objects, methods and variables should be descriptive and chosen for readability. Function names and variables should begin with a lower case letter. Objects, and object constructors should be capitalized. Using mixed case works well for variable names. The style should be consistent throughout the project. EXAMPLES: Good: lastGameScore (variable name, mixed case, starts with lowercase) last_game_score (variable name, starts with lowercase ) Bad: lastgamescore (variable name, hard to read) lastgmscr (variable name, difficult to interpret) lgs (variable name, difficult to interpret) Lastgamescore (variable name, wrongly Capitalized) LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 45 08 MEDIA SPECIFIC DEVELOPMENT Use the Macromedia specified suffix (_mc, _btn, _txt, _xml, _array, _sound) to clearly identify the type of object in your code. Use relative scoping of variables to enable the portability and repurposing of Flash elements like movie clips and loaded movies. Relative paths should be used to all external files and media. Code must be cleanly written and formatted, and all redundant code must be removed. Refactoring should be considered if the code has become unclear or has evolved into a bad design. Refactoring is the process of changing code in such a way that does not alter the external behaviour of the code, yet improves its internal structure. The goal is to improve the programming design and maintainability and to restore coherence and flexibility. CODE PLACEMENT Locating code is one of the most important issues in making a source files accessible to another developer. In addition to the ActionScript Best Practices white paper, a useful technical document on the placement of code can be found at http://www.macromedia.com/support/flash/ts/documents/as_behavior_ practices.htm The developer must be consistent in the placement of code and must document the strategy used. Efforts should be made to centralize the code, usually in the first frame. These guidelines should be followed: • Every timeline that contains code should have one layer (or two — one for functions and one for frame actions) to contain code and a layer named labels. These should be positioned at the top of the timeline. Use these layers exclusively for labels and scripts. • Avoid putting code directly on buttons or movie clips, except in the case of behaviors. • Avoid in-line code in frame actions on the timeline. Instead, make a call to a function or Object method which defines where your main code is centralized. • Use an external actionScript file for each Class. Name the file based on the name of the Class (e.g. Calculator.as, Blackboard.as) • When including an .as file with a library of related functions, a brief comment above the #include directive in your internal code should summarize the purpose of the .as file. • If Class definition code is included in a timeline script, script comments should clearly separate, identify and describe the code that applies to each Class. • Group all related functions and methods for easy interpretation. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 46 08 MEDIA SPECIFIC DEVELOPMENT COMMENTING Commenting is essential to the maintainability of a project. Comment in plain language as much as possible. Programmers should incorporate commenting into the ongoing coding workflow, rather than commenting after the fact. All .fla files should have a documentation header that describes the use of that movie in the overall project. Timeline variables and globals should be explained. Complex movie clips should also include this type of documentation. This should be placed consistently, either in the first frame or another location that is documented. Every non-trivial function or method must be preceded by a commented header that describes that function, its properties, and arguments. Comment any code that would not be immediately understood, either in the header or within the body of the handler. It can sometimes be useful to indicate where the code is called from. Class definition scripts should have a commented header that describes the object, its properties and methods. LIBRARIES Libraries can contain a large number of media elements, graphics, sounds, symbols and movie clips. If these are not filed consistently it can be extremely onerous or, practically speaking, impossible to edit or update content in the production. Locating and replacing media elements easily is a critical requirement. The developer must use folders and subfolders to organize media elements logically. Another developer should be able to identify media elements easily by the organization and naming of library elements. Use the following structure to organize your library: • Buttons, components, fonts, graphics, movie clips, sounds, shared resources or components and text folders should be represented at the top level. • Create any number of subfolders within these root level folders for easier maintenance. For example, buttons might contain Lesson 1, Lesson 2, etc. Apply the same system consistently across the library. • Documentation of the system used in the library must accompany the project. • The developer must create, document, and apply a systematic naming convention for internal media assets stored in the library. Every symbol must be named. Assign logical and descriptive names (“foghorn sound” vs. “fh_aug2_final_rev”). Avoid cryptic abbreviations (“ssbkgd” for “sunset background”). • Before deployment, delete all redundant, temporary or unnecessary library items LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 47 08 MEDIA SPECIFIC DEVELOPMENT TIMELINE Name every layer descriptively in a way that other developers can easily identify what content is on that layer. Do not mix and match content within layers. Instead use layers liberally and group them into folders of associated content. Do not use the default layer names (Layer 1, Layer 12, etc). Name all instances using Macromedia approved suffix (_mc, _btn, _txt). Use a different style of naming for library items to avoid confusion between a reference to a library item and an instance of that item. EXAMPLE: Library item: “generic section button” instances: “section1_btn”, “section2_btn” Use one or more separate layers for sound if including sound in a timeline. WORKFLOW AND MEDIA PRODUCTION Any unusual workflow or production processes should be described in a text document. Internal documentation within a .fla file is also acceptable if it is easy to locate. This documentation should be sufficiently detailed so a different production team making content changes can successfully replicate the process. Production processes that cannot be easily replicated should not be used. 8.B DIRECTOR The developer must ensure that projects developed in Director are built so they can be easily edited, revised, and repurposed by other developers. Special efforts must be made to organize and document the project to enable this requirement. STRUCTURE Projects must be built with an obvious and consistent organization of content. The programmer should consider whether a frames based implementation vs. a purely programmatic implementation would be easier for other qualified developers to understand and work on. In making the choice the developer must favour the ease of redevelopment and revision by a different team. The developer must include documentation as separate text files or diagrams (see section 8b) that describe the structure of the movies, and the uses of objects. Include the location of any internal documentation, file naming conventions and media asset naming protocols. Again, projects should be designed with granularity in mind. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 48 08 MEDIA SPECIFIC DEVELOPMENT SCORE The following guidelines should be followed to increase the readability of the score: • Use white space (empty frames and sprite channels) in the score for readability. Group related sprites in adjacent channels. Use a group of empty frames between sections and screens to emphasize the structure and flow of the timeline. • Use descriptive frame labels to indicate the structure of the movie and the content of a frame or group of frames. It is often useful to label some frames for readability of the score, even if these are not required for navigation. • Colour coding of related sprites in the score is recommended to assist in readability. • Do not hard-code frame numbers in your navigation scripts. Navigational code should use frame labels, not frame numbers, so that content can be added or extracted without breaking the navigation. An exception is permitted if the numbering system is integral to the structure of the navigation, flexibly designed to accommodate changed values and thoroughly commented so it can be updated and repurposed. PROGRAMMING Make the code accessible and easy to interpret. Programmers should make a high priority of developing code structures and language that are clear and easy to understand by other developers. The following guidelines should be followed: • Create a documentation header at the top of the first Movie script. This banner should contain comments on the movie name, purpose, all global variables and custom Objects, who programmed it, unusual programming, dependencies, extras required, and any other important information. This script should also contain the startMovie handler, an init handler for initializing variables, and an optional stopMovie handler. • Place this movie script in the first member position of castLib 1 or another cast designated for strictly for script members. • Centralize and organize all movie script code logically so it is easy to find. Use a separate Movie script for utility and production code. • For clarity initialize variables within separate init handler within the movie script, objects, and behaviors. • Group all related functions and methods for easy interpretation. • Avoid any instances of hard-coding data within functions and methods. Values (such as sprite numbers) should be stored as a variable or property. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 49 08 MEDIA SPECIFIC DEVELOPMENT • Test and debug code should be identified with comments, indicating the purpose of the code where necessary. • Group Movie scripts, Parent scripts, and Behaviors in the cast designated for scripts. Using cast member scripts is discouraged as they can be difficult to locate. • The developer must name every script in a way that indicates its function (“MAIN movie script”, “Utility movie script”, “rotation behavior”, etc. ). • The developer must use a system for naming variables and properties that clearly identifies the scope. The system must be used consistently across the program. Notice the mixed case style to improve readability. These are recommended: gCustomObj (global instance of object gGlobal (global Variable) pProperty (property) variableName, aVariableName (local variable) • Relative paths should be used to all external files and media. • Code must be cleanly written and formatted, and all redundant code must be removed. Refactoring should be considered if the code has become unclear or has evolved into a bad design. Refactoring is the process of changing code in such a way that does not alter the external behaviour of the code, yet improves its internal structure. The goal is to improve the programming design and maintainability and to restore coherence and flexibility. COMMENTING Commenting is essential to the maintainability of a project. Comment in plain language as much as possible. Programmers should incorporate commenting into the ongoing coding workflow, rather than commenting after the fact. Every non-trivial handler, function or method must be preceded by a commented header that describes that function, its properties, and arguments. Comment any code that would not be immediately understood, either in the header or within the body of the handler. It can sometimes be useful to indicate where the code is called from. Parent scripts should have a commented header that describes the object, its properties and methods. CAST The developer must create, document, and apply a systematic naming convention for internal media assets stored in the cast. The media production team should follow these naming conventions for their production output (e.g. In Photoshop layers if using Photocaster to import Photoshop layers). LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 50 08 MEDIA SPECIFIC DEVELOPMENT These guidelines should be applied to the organization of assets in cast libraries: • The preferred system is to use several casts, logically organized and descriptively named according to media type and/or usage. • If using a single cast, group cast members by type, leaving a row of empty members to improve readability. • Every cast member must be named, regardless of the member’s type. • Assign logical and descriptive names (“foghorn sound” vs. “fh_aug2_final_rev”). Avoid cryptic abbreviations (“ssbkgd” for “sunset background”). • When designing and applying the naming protocol, use a consistent set of suffixes or phrases to indicate the media type or usage of all cast members. Good: animal sound 01, intro_snd, quit btn, animal image 01, intro background, Bad: intro, animal 01, background, quit • Before deployment, delete all redundant, temporary or unnecessary cast members WORKFLOW AND MEDIA PRODUCTION Any unusual workflow or production processes should be described in a text document. Internal documentation within a .dir file is also acceptable if it is easy to locate. This documentation should be sufficiently detailed so a different production team making content changes can successfully replicate the process. Production processes that cannot be easily replicated should not be used. Examples The developer should ask how a different team might reproduce an animated film loop with changes to some of the graphics. Does it require providing source movies used for this type of production process, as well as documentation? Flash elements incorporated in a Director file may have their regpoints changed programmatically. This process requires documentation and explanation. Utility code and comments that facilitate this process should be left in place. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 51 08 MEDIA SPECIFIC DEVELOPMENT References ActionScript Best Practices: Macromedia White Paper http://download.macromedia.com/pub/devnet/downloads/actionscript_standards.pdf A useful technical document on the placement of code in Flash can be found at: http://www.macromedia.com/support/flash/ts/documents/as_behavior_practices.htm 8.C LIVESTAGE PROFESSIONAL (QUICKTIME) Although QuickTime movies authored in LiveStage Professional (LSP) are by their nature very re-useable, developers must still ensure that projects are built to be easily edited, revised, and repurposed by other developers. Special efforts must be made to organize and document the project to enable this requirement. STRUCTURE An LSP project displays its media over time and across the different layers. At any given time, one or more tracks can be displayed. It resembles the frame-based environment of Director and the track-based environment of a modern Non-Linear Editing (NLE) system. LSP is a media integration tool rather than an authoring tool. Media is generally created first, first in other applications like Flash, Photoshop, Cleaner etc. and then brought into LSP. The developer needs to take into consideration the workflow of 3rd party applications and ensure maximum compatibility. The developer must include separate text files or diagrams that describe the structure of the project, the uses of behaviours, and the placement of code. The organization and hierarchy of dynamically loaded child movies must also be explained in these documents. Include the location of any internal documentation, file naming conventions, and media asset naming protocols. PROGRAMMING Make the code accessible and easy to interpret. Programmers should make a high priority of developing code structures and language, which are clear and easy to understand by other developers. The following guidelines should be followed: • Centralize and organize all Qscript logically so it is easy to find. • Group all related functions and methods for easy interpretation. • Avoid any instances of hard-coding data within functions and methods. Instead use the Defines Window. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 52 08 MEDIA SPECIFIC DEVELOPMENT • ‘Test’ and ‘debug’ code should be identified with comments, indicating the purpose of the code where necessary. • The developer must name each script in a way that indicates its function (“MAIN Parent script”, “Create Play List Script”, “rotation behaviour”, etc.). • The developer must use a system for naming variables and properties that clearly identifies the scope. The system must be used consistently across the program. See Naming Conventions Below. • Code must be cleanly written and formatted, and all redundant code must be removed. Refactoring should be considered if the code has become unclear or has evolved into a bad design. Refactoring is the process of changing code in such a way that does not alter the external behavior of the code, yet improves its internal structure. The goal is improve the programming design and maintainability and to restore coherence and flexibility. NAMING CONVENTIONS Naming conventions are a high priority when building a project, not only for a developer’s internal organization, but to enable easy sharing and reuse across multiple developers. There are two schools of thought with respect to naming conventions: the underscore school and the first letter capitalized school. The underscore school uses “_” to separate the words (my_variable_defined) The first letter capital school separates the words by putting the first letter of each word in caps (MyVariableDefined) You should never leave a space in the file name nor use any special characters other than an underscore. Do not begin the file name with a number either. File and Folder Names LiveStage Professional authoring will necessitate the use of many different file types and formats. The developer will be using .swf, JPEG, MP4, .MP3, .mov, and .gif to name a few. They will also be using multiple instances and versions of these files. File names must therefore be as descriptive of the file’s content as possible. An example of using an appropriate file naming convention to ensure proper sorting and tracking could be: InitialFileName_YYMMDD_Version_ModifiedBy.FileExtension EXAMPLE: Spinner_040315_02B_DONAT.LSD ModifiedBy = The Individual Developers Initials or other agreed upon descriptor. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 53 08 MEDIA SPECIFIC DEVELOPMENT Folders should be organized as per the structure described in Section 7 of this document. Object Names An ‘object’ in LSP refers to a movie, track, sample, or sprite. It is important to give them a name that describes their content for ease of use at a later date. Variable names Variables have different levels of scope within an LSP application. Just as with Flash or Director, it is beneficial to add a single letter prefix to denote what scope level a particular variable may have, shown as follows: Local Variable: lMyVariable Sprite Variable: sMyVariable Global Variable: gMyVariable Movie Variable: mMyVariable Assign logical and descriptive names. For example, mCountDown would be more obvious than mCntDn. COMMENTING Commenting is essential to the maintainability of a project. Comment in plain language as much as possible. Programmers should incorporate commenting into the ongoing coding workflow, rather than commenting after the fact. Commenting QScript should be done using // for a single line and /* */ for multiple lines. This helps any developer understand what the script does. Best practices would dictate that developers should: • In the Defines Window include comments on the project name, purpose, and variables. custom behaviours, who programmed it, unusual programming, dependencies, and any other important information. • Input comments at the beginning of each script related to its function. And add comments before each main section of the script. In short, comment any code, which would not be immediately understood. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 54 08 MEDIA SPECIFIC DEVELOPMENT MODULAR PROGRAMMING Within a Project The ability to share QScript within a project allows developers to easily and quickly update the QScript if needed Defines When using Defines, developers can easily define, set, and alter specific QScript values and parameters to be used inside its script. Once Defines are declared in the Defines Window, developers can refer to it throughout the entire project. Changing the Defines changes all the incidents calling it. This also simplifies the script throughout the project. As a rule of thumb, it is recommended to use a ‘k’ as the prefix for a constant (konstant), as it will prevent it from being confused with variables. Note that these constants cannot be changed at run time. kMyConstant = “My Text to display” Custom Events Handlers Custom event handlers are a good way to create sub-routines within an LSP project. Developers can set a script up as a custom event, and trigger it when needed. This is especially useful if developers wish to use the same script at several locations, thereby avoiding the extensive use of cut-and-paste if something changes. If a parameter or value needs to be external to the custom event handler, simply set a variable to be used, within the handler. Refer to the LSP manual for further details on how to create and trigger custom event handlers. Across Projects Includes Includes are similar to Defines, except that they are not stored within a project but inside an external text file generally called “Includes.qsf”, located in the libraries. Developers can then refer to the Includes from any LSP projects accessing the libraries. Using Includes allows developers to share several constants across several projects, making global updates and changes easier. Behaviours Behaviors allow developers to share QScript across projects while allowing custom parameters to be set. Once built, they can be reused over and over within a project or across projects. It is recommended to follow the various guidelines proposed in the LSP manual. The use of behaviours is essential for proper Object Oriented Programming. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 55 08 MEDIA SPECIFIC DEVELOPMENT External Tracks If developers want to share more than QScript code across projects, for example, share functionalities, LSP allows them to share external tracks (or widgets) across projects and more specifically Sprite Tracks. For example, you can build a custom branded movie controller in a single sprite track, export it as a QuickTime movie and import it into another project. Updating the movie controller will update (upon recompiling) all the other projects using it. Please refer to the following tutorial for more information: http://stagedoor.totallyhip.com/direct.asp?TOPIC=Resource&RESOURCE_ID=7&ITEM_ID=130 External Movies Loaded Within MIAM Another way to share functionalities across projects is to load the functionalities into a Movie Track in the QuickTime movie. It uses the same concept as the external tracks, described above, but allows the QuickTime movie to be updated at runtime. SHARING PROJECTS AND PROJECT REPORTS Export Gathered Project The ’export gathered project’ command allows the developer to gather all the media used in the LSP project into one location. The ‘gathered’ file can be used as a back-up and also prevents the omission of media files when transferring a project to another location. However, it is not acceptable as a final project deliverable in itself. WORKFLOW AND MEDIA PRODUCTION Folder Name Functionality The ‘Folder Name’ functionality in LSP allows developers to arrange their media source files within folders inside the Libraries and then create the appropriate tracks, samples, and sprites instantly by simply dragging the folders to the Timeline or Stage. For example, developers could create an entire sprite track containing several sprites with roll over states and behaviours attached to them, by simply dragging and dropping a folder. Refer to the following StageDoor tech note for the list of pre-defined naming and organization conventions: http://stagedoor.totallyhip.com/direct.asp?TOPIC=KBase&RESOURCE_ID=2&ITEM_ID=292 If this folder name functionality is used within a project, details must be provided within the documentation. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 56 08 MEDIA SPECIFIC DEVELOPMENT Other Preprocessed File Names In addition to the Folder Name functionality described above, media files used inside the Skin Fast Track can be expediently named by simply dragging and dropping the files inside the SkinFastTrack. Dragging and dropping a folder containing the following media into a SkinFastTrack will create a SkinFT with the proper associated images. • A single Photoshop file with 3 layers named ‘background’, ‘shape’, and ‘drag’, or 3 individual files. • A Folder called ‘close’ with 3 files named ‘up’, ‘down’, and ‘over’ (the file extension may vary) • A folder called ‘FullScreen’ with 3 files named ‘up’, ‘down’, and ‘over’ (the file extension may vary) Again these time saving procedures must be detailed within the documentation when they are used. LSP XML Import/Export An LSP project can be exported as an XML file describing the project itself. If the XML file is imported into LSP, it will re-create the LSP project described within the XML file. This functionality allows for the automation of XML-based projects, using 3rd party applications. All automation will need to be detailed in the documentation. The developer must ensure that the described automation will function across multiple platforms. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 57 09 LEARNING OBJECT SPECIFIC STYLE GUIDE 9.A WHY A STYLE GUIDE? It must be assumed that there is a high degree of probability that a learning object will be amended in some fashion during its life on LearnAlberta.ca. To ensure a high level of continuity in look and feel, a style guide must be developed and delivered to Alberta Learning with the completed learning object. Please note that the style guide is a separate document from programming documentation, which must also be supplied. 9.B STYLE GUIDE AUDIENCE The style guide’s audience is a third party developer who may be asked to extend or reuse components of the learning object. It should be assumed that this developer is an experienced professional, but would have no previous experience with this specific learning object. 9.C LIBRARIES Source files must be supplied on disk and referenced within the style guide. The working files must have layers intact where applicable (PhotoShop, After Effects, etc.). The layers will need to be labeled and referenced within the guide where applicable (button states for example). 9.D HIGH LEVEL OUTLINE Below is a high level outline of what the learning object style guide should cover. In general, the finished document should focus on definitions rather than rationale. The document should liberally cite the Library CD of source files by file name and folder. INTRODUCTION Guide Overview This is a brief overview of the guide, citing the main area of information and important points of reference within the guide. Deliverable Directory Structure This is a visual diagram identifying all major files and folders required to build the project. The organization of this diagram should conform to the directory structure detailed in Section 7 of this document. LEARNING OBJECT OVERVIEW A summary of the key information related to the learning object including: LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 58 09 LEARNING OBJECT SPECIFIC STYLE GUIDE Official Name The official name of the learning object. Authored Date This is the date the project was completed. Version Number The version number of the guide including all the dates of any amendments made since version 1.0. It should also include references to sections that were changed. Developers The vendor’s company and personnel involved in the learning object’s development as well as individuals from Alberta Learning involved in the project. It should people’s roles or responsibilities in the production. Target Audience The target audience is the primary audience for the specific resource. If choosing from K-12 grade level audience groups, it can be described by division as well: • • • • Division 1: Kindergarten - Grade 3 Division 2: Grades 4-6 Division 3: Grades 7-9 Division 4: Grades 9-12 Subject The subject areas where the learning object is applicable. Technology Requirements A list of deployment technologies (including versions) required for viewing the resource. This must conform to the information contained in the Supported Player / Plug-Ins section found in the Technical Specifications document. Architecture The ‘sitemap’ of the object where a visual diagram with appropriate commentary is expected. Sectional Descriptions An ‘at-a-glance’ breakdown of each page/screen found in the object, including a brief description for each. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 59 09 LEARNING OBJECT SPECIFIC STYLE GUIDE VISUAL TREATMENT Creative Rationale Provide a brief rationale as to the overall visual objective. Why were certain colours, tones, textures, and images chosen? UI Specific Guidelines This section covers the visual treatment and overall design of the various navigational elements. References should be made to the accompanying library so third party developers can find and edit these elements as needed. Content Specifics Guidelines This section will be very diverse from one guide to another as it covers the visual treatment of the content itself. It will cover the dimensions of images and video, the fonts used, why, and what exceptions are being made if any? LEARNALBERTA.CA WRAPPER TREATMENT Visual Treatment Covers the visual adaptation of the meta-content elements. Implementation Discusses the technical incorporation of the Wrapper, along with the process of removal. FUNCTIONAL DESIGN Established Metaphor Rationale The expected behaviour of all established metaphors within the learning object. This is particularly important for unique response models. UI Specific Guidelines Covers the functionality and behaviour of the navigation and other non-content related elements. It need only focus on functionality not addressed by the existing Functional Design Document. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 60 10 REFERENCES We have provided here a list of references, which supports this Cross-content Learning Object Style Guide. 10.A INTERNAL Technical Specifications This document starts off by setting forth a list of principles and obligations that are upheld by Alberta Learning. Application conformance is noted, along with a content model, which includes common Web development practices and established standards. Hardware and software requirements are then detailed, along with encouragement for the implementation of accessibility standards. Functional Design Guidelines The goal of this document is to ensure that learning objects from source A and B employ similar methods of interaction for a consistent user experience. Recommendations are made for various aspects of learning object design. These include various accessibility standards, content packaging, functional behaviour, technical limitations, and visual design principles. Use case response models are also detailed to provide further qualification. Instructional Design Guidelines According to the document, its purpose is to provide a frame of reference for the development and evaluation of instructional designs. It does this first by making comparisons between three distinct approaches to learning: the behaviourist, the cognitivist, and the constructivist. The instructional design of learning objects is then broken down into core components, such as project & learner analysis, outcome identification, instructional context, and pedagogical correlation. Instructional tasks are discussed and examples (by academic subject) are given via correlation tables, a qualifying mechanism used by Alberta Learning during the development process. Interface Design Guidelines Interface design obviously plays a key role in the user experience. This document basically touches on the key areas: Elegance and Simplicity, Contrast and Proportion, Organization and Visual Structure, Module and Program, Image and Representation, and Style. Each of these sections provides descriptions and principles while noting common errors and providing possible solutions for each. Summaries are then made to justify why each of these aspects of design are so important to the object as a whole. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 61 10 REFERENCES Government of Alberta Visual Identity Guidelines This document defines the online representation of the Alberta provincial identity by providing guidelines and best practices for aspects such as appearance, searching, and content. The specifications for common elements are outlined and discussed first, including various navigational models and identifier components. Searching mechanisms are then detailed in terms of predefined search forms and content indexing. A high-level HTML meta-tag definition is also defined here. Content is then discussed, primarily in relation to best practices for content preparation, along with general maintenance procedures. References for each main facet of the document are also provided. 10.B EXTERNAL WEB SPECIFIC RESOURCES AND LITERATURE • W3C This stands for the World Wide Web Consortium. Several relevant standards and specifications reside here, making it a valuable wealth of information: http://www.w3c.org • Jakob Nielson, Designing Web Usability - New Riders, 2000 • Jesse James Garret, The Elements of User Experience - New Riders, 2003 • Jonathan and Lisa Price, Hot Text - New Riders, 2002 • Gerry McGovern and Rob Norton, Content Critical - Prentice Hall, 2002 • Louise Rosenfeld and Peter Morville, Information Architecture 2nd Edition - O’Reilly, 2002 • Steve Krug, Don’t Make Me Think - New Riders, 2002 SOFTWARE SPECIFIC DEVELOPMENT STANDARDS Resources and Developer Centres There are several valuable resources for the various authoring environments as listed below: Flash http://www.macromedia.com/devnet/mx/flash/ http://download.macromedia.com/pub/devnet/downloads/actionscript_standards.pdf http://www.macromedia.com/support/flash/ts/documents/as_behavior_practices.htm Director http://www.macromedia.com/devnet/mx/director/ Dreamweaver http://www.macromedia.com/devnet/mx/dreamweaver/ LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 62 10 REFERENCES QuickTime http://www.apple.com/quicktime/tools_tips/ • Steven Gulie, QuickTime for the Web 3rd Edition - Morgan Kaufmann 2001 • Matthew Peterson, Interactive QuickTime - Morgan Kaufmann 2004 OTHER REFERENCES • Charles F. Goldfarb and Paul Prescod, The XML Handbook 3rd Edition - Prentice Hall, 2002 • Edward Rolf Tufte, The Visual Display of Quantitative Information 2nd Edition - Graphics Press, 2001 • Erik Spiekermann and E. M. Ginger, Stop Stealing Sheep and Find Out How Text Works 2nd Edition - Peach Pit Press, 2003 • Alan Cooper, The Inmates Are Running the Asylum - Sams Publishing, 1999 • Bruce Tognazzini, Tog on Interface - Addison-Wesley Publishing, 1992 LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 63 11 GLOSSARY OF LEARNALBERTA.CA TERMS Content Package A Content Package comprises a parcel of learning materials, their description, their structure, and location online. http://www.imsglobal.org/content/packaging/index.cfm Future Proofing Future proofing means ensuring content has a long shelf life. It means that something (a learning object) will remain valuable over a long period of time even as technologies and tastes change. Future proofing can be addressed by ensuring: • There is a high degree of granularity to encourage reuse. • That visual design balances the contemporary with the classic. • That projects, to a great extent, adhere to standards. Granularity Granularity refers to the relative complexity or extensiveness of a learning object in terms of how many digital assets or files are aggregated or combined to form a learning object. OOAD ensures a certain level of granularity. See ‘Future Proofing’ above. LearnAlberta.ca Icon The LearnALberta.ca Icon refers to the specific instance of the LearnAlberta.ca logo used in the LearnALberta.ca Wrapper. LearnAlberta.ca Wrapper This is a required part of a UI for all LearnAlberta.ca learning objects. It houses the LearnAlberta.ca Icon and a specific set of all common meta-content elements. Learning Object One or more digital assets combined and sequenced to create or support a learning experience addressing a curricular outcome(s) for an identified audience(s). A learning object can be identified, tracked, referenced, used and reused for a variety of learning experiences. Learning Object Repository A learning object repository is a database of learning objects stored on servers and catalogued or organized using metadata. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 64 11 GLOSSARY OF LEARNALBERTA.CA TERMS Learning Resource A learning resource is any item that can be used for learning (in school or at home) by a teacher, student or parent. For the purposes of LearnAlberta.ca, a learning resource can be a learning object such as an interactive multimedia concept lesson, a link to another useful Web site, or reference material (encyclopedias, etc.) offered through the Online Reference Centre. Masthead The area on the top of a Web page or learning object. Includes essential information describing the content and often includes branding elements. Meta-Content Also called non-content content. This is reoccurring content that is common to all learning objects produced for LearnAlberta.ca. such as, Feedback, Copyright, etc. Navigation Global: links represented as menu elements common to all pages that provide direct access to key areas of the site or multimedia project. Local: links represented as menu that are complimentary to the Global Navigation, and relevant to that particular section of the site. Contextual: page specific links that appear within the course of a specific page’s content or as a more prominent menu. Courtesy: links common to all pages that provide direct access to affiliates or content not directly related to the goals of the site. Portal The term used when referring to LearnAlberta.ca Reuse To use again, especially after special treatment or processing. Share To use again, with little or no special treatment or processing. Multipurpose To use again, especially after special treatment or processing permitting reuse across mediums. LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 65 11 GLOSSARY OF LEARNALBERTA.CA TERMS Repurpose To use again, especially after special treatment or processing permitting reuse across mediums and audiences. SuperNet SuperNet is an unprecedented endeavour to provide affordable high-speed network connectivity and Internet access to all universities, school boards, libraries, hospitals, provincial government buildings and regional health authorities throughout the province. At the same time, SuperNet will ensure businesses and residences in 422 communities will have access to high-speed Internet at competitive rates. Wrapper (see LearnALberta.ca Wrapper) TERM CONSISTENCY LIST Term to Use Instead of... Desktop Desk Top Email e-mail Hotspot hot spot Internet internet, Web, World Wide Web learner Student, Pupil learning Education, Schooling, Instruction Login (Noun) Log-in, Sign In, Log In log in (Verb) Log in, Log-in, Login online on-line plugin plug-in Teacher educator, instructor Test (an evaluation Exercise, administered by a teacher) exam UserID User ID, User Name, Login Name Website Web site Portal (when referring to LearnAlberta.ca) Website LEARNALBERTA.CA LEARNING OBJECT DEVELOPMENT GUIDE 66