Changes between Version 25 and Version 26 of DevProjects
- Timestamp:
- Nov 4, 2007, 1:58:40 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DevProjects
v25 v26 22 22 * Some kind of quality assurance process to check any changes to front-end are appropriate (far easier to have poor front-end code be submitted and missed than back-end code; bad back-end code generally doesn't work and/or breaks something, poor front-end code is tolerated by browsers). 23 23 * All styling declarations to be contained in external files 24 * Separation of structure/content and presentation — removal of deprecated presentational markup elements (that's what CSS is for). 25 * Separate “General” and “Project-specific” CSS files. The idea being that a project can make customisations in the Project-Specific file, over-riding the “general” styling, while still being able to easily “update/upgrade” the general styling CSS file needed for basic layout and such. This is to help projects avoid having to ‘back-up’ their customisations to avoid them being over-written during a server upgrade, thus encouraging each project to adopt a ‘unique’ look & feel for better identity (many projects don't change the default presentation, so the web-interface of many projects looks the same. The difficulty in making, and maintaining customisations while still trying to upgrade BOINC server versions is likely a reason most don't bother; after all, what's the point if they're just going to be over-written at the next upgrade?). 24 * Separate “General” and “Project-specific” CSS files. The idea being that a project can make customisations in the Project-Specific file, over-riding the “general” styling, while still being able to easily “update/upgrade” the general styling CSS file needed for basic layout and such. 26 25 * Typography corrections/improvements 27 26 * Quality copy-writing to enhance readability and clarity of content … … 31 30 * Any changes to URL structure require (permanent) redirects from all previous locations to all new locations. 32 31 * Valid Markup & style declarations — Importance of valid code: “[http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you Why We Won't Help You]”, [http://ln.hixie.ch/?start=1037910467&count=1 How User-Agents Handle Tag-Soup]. 33 * Should aim for HTML v4.01 Strict (XHTML served with the correct MIME-type/content-type doesn't have sufficient support, modern HTML authoring techniques are perfectly capable, adequate, suitable, and appropriate). 34 * If Strict isn't reasonably attainable (very few reasons why apart from time constraints to correct poor design/implementation), then aim for Transitional as an intermediate step, so that the code will at least be valid. 35 * Closing tags 36 * Correct nesting of elements: closing tags in the opposite order to opening, e.g. closing the most recently opened first: {{{<1><2><3></3></2></1>}}} 32 * Should aim for HTML v4.01 Strict or XHTML 1.0 Strict. 37 33 * Mark-up authored in such a way as to allow presentation to be radically changed via CSS — involves structure * ID/class values based on purpose rather than presentation/appearance. 38 * Semantic Markup — marking-up things based on what they are, not the default appearance of certain elements. For example: using {{{<blockquote>…“quoted” text…</blockquote>}}} for indentation is inappropriate. Block-quotes should be marked as {{{<blockquote><p>…actual block-quote…</p></blockquote>}}} and nothing else. In this example, if indentation is required then CSS should be used to apply styling to an appropriate element (a regular paragraph ({{{<p>…Paragraph text…</p>}}}) would probably be suitable unless the element isn't actually a paragraph.34 * Semantic Markup — marking-up things based on what they are, not the default appearance of certain elements. 39 35 * Accessibility 40 * Replacing table-based layouts with CSS positioning 41 * More semantic mark-up (see semantic markup item) 36 * Replace table-based layouts with CSS positioning 42 37 * Using appropriate units in style declarations to enable resizing of text based on user's preferences in browser. 43 * Unobtrusive, accessible use of ECMAScript (!JavaScript), implemented via progressive enhancement and DOM Scripting methods. [http://www.456bereastreet.com/archive/200612/you_cannot_rely_on_javascript_being_available_period/ Scripting is not always available and can not be relied upon] (for many reasons, the majority being outside the user's control), and the back-end needs to be able to provide same functionality (albeit less elegant/sophisticated) when scripting isn't available for whatever reason. A simple example would be back-end form input validation when scripting isn't available to protect against garbage/bogus form data and provide feedback to user.38 * Unobtrusive, accessible use of ECMAScript (!JavaScript), implemented via progressive enhancement and DOM Scripting methods. [http://www.456bereastreet.com/archive/200612/you_cannot_rely_on_javascript_being_available_period/ Scripting is not always available and can not be relied upon] (for many reasons, the majority being outside the user's control), and the back-end needs to be able to provide same functionality (albeit less elegant/sophisticated) when scripting isn't available for whatever reason. 44 39 * Usability 45 * Includ ingerror-messages and similar40 * Include error-messages and similar 46 41 * Proper navigation model 47 42 * Navigation bar/panel on common pages (rather than always having to (or only being able to) go back to “Home” and then navigate to desired section from there). … … 57 52 * Accessibility 58 53 * Table mark-up to better indicate headers and relationship between cells and headers (mostly involves changing the template used by the back-end to generate thread tables) 59 * A side-advantage is that by indicating such things allows user agents to render a table as soon as it starts getting data, rather than having to wait for the entire table to begin calculating the width, this will result in significant rendering improvements.54 * Fill the requirements for progressive table rendering. 60 55 * Checking/validating user-input 61 56 * Make authoring accessible, semantic forum posts as easy as possible (the markdown syntax would be a good candidate). … … 63 58 * HTTP Functionality 64 59 * Use correct type of HTTP Request based on purpose/function 65 * GET requests should not change anything (as per the [http://www.w3.org/Protocols/rfc2616/rfc2616.html HTTP/1.1 RFC]). Currently the Subscribe/Unsubscribe functions use regular links (resulting in GET requests) to change subscription status, instead a POST request should be required (e gmaking the function unavailable via GET) to indicate that the (un)subscribe function changes something and isn't just fetching a page.60 * GET requests should not change anything (as per the [http://www.w3.org/Protocols/rfc2616/rfc2616.html HTTP/1.1 RFC]). Currently the Subscribe/Unsubscribe functions use regular links (resulting in GET requests) to change subscription status, instead a POST request should be required (e.g. making the function unavailable via GET) to indicate that the (un)subscribe function changes something and isn't just fetching a page. 66 61 67 62 === Back-end ===