Changeset 6951 for CKEditor/trunk


Ignore:
Timestamp:
05/23/2011 10:52:15 AM (4 years ago)
Author:
garry.yao
Message:

#7266: "aria-invalid" on invalidated dialog fields.

Location:
CKEditor/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r6950 r6951  
    6969                <li><a href="http://dev.ckeditor.com/ticket/7879">#7879</a> : Style and Height/Width fields of the Table Properties dialog window were not synchronized.</li> 
    7070                <li><a href="http://dev.ckeditor.com/ticket/7581">#7581</a> : [IE] Enter key at the end of list item with "start" attribute crashes the browser.</li> 
     71                <li><a href="http://dev.ckeditor.com/ticket/7266">#7266</a> : Invalid dialog fields are now ARIA compatible with "aria-invalid".</li> 
    7172                <li>Updated the following language files:<ul> 
    7273                        <li><a href="http://dev.ckeditor.com/ticket/7834">#7834</a> : Dutch;</li> 
  • CKEditor/trunk/_source/plugins/dialog/plugin.js

    r6947 r6951  
    9393                } 
    9494        } 
     95 
     96        // Handle dialog element validation state UI changes. 
     97        function handleFieldValidated( isValid, msg ) 
     98        { 
     99                var input = this.getInputElement(); 
     100                if ( input ) 
     101                { 
     102                        isValid ? input.removeAttribute( 'aria-invalid' ) 
     103                                : input.setAttribute( 'aria-invalid', true ); 
     104                } 
     105 
     106                this.fire( 'validated', { valid : isValid, msg : msg } ); 
     107        } 
     108 
     109        function resetField() 
     110        { 
     111                var input = this.getInputElement(); 
     112                input.removeAttribute( 'aria-invalid' ); 
     113        } 
     114 
    95115 
    96116        /** 
     
    274294                                                if ( item.validate ) 
    275295                                                { 
    276                                                         var isValid = item.validate( this ); 
    277  
    278                                                         if ( typeof isValid == 'string' ) 
    279                                                         { 
    280                                                                 alert( isValid ); 
    281                                                                 isValid = false; 
    282                                                         } 
    283  
    284                                                         if ( isValid === false ) 
     296                                                        var retval = item.validate( this ), 
     297                                                                isValid = retval === true ; 
     298 
     299                                                        if ( !isValid ) 
    285300                                                        { 
    286301                                                                if ( item.select ) 
     
    291306                                                                evt.data.hide = false; 
    292307                                                                evt.stop(); 
    293                                                                 return true; 
    294308                                                        } 
     309 
     310                                                        handleFieldValidated.call( item, isValid, typeof retval == 'string' ? retval : undefined ); 
     311                                                        return  !isValid; 
    295312                                                } 
    296313                                        }); 
     
    455472                                if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) ) 
    456473                                        dialogElement.removeListener( 'keypress', focusKeyPressHandler ); 
     474 
     475                                // Reset fields state when closing dialog. 
     476                                iterContents( function( item ) { resetField.apply( item ); } ); 
    457477                        } ); 
    458478                this.on( 'iframeAdded', function( evt ) 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy