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