Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6950)
+++ /CKEditor/trunk/CHANGES.html	(revision 6951)
@@ -69,4 +69,5 @@
 		<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>
 		<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>
+		<li><a href="http://dev.ckeditor.com/ticket/7266">#7266</a> : Invalid dialog fields are now ARIA compatible with "aria-invalid".</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/7834">#7834</a> : Dutch;</li>
Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 6950)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 6951)
@@ -93,4 +93,24 @@
 		}
 	}
+
+	// Handle dialog element validation state UI changes.
+	function handleFieldValidated( isValid, msg )
+	{
+		var input = this.getInputElement();
+		if ( input )
+		{
+			isValid ? input.removeAttribute( 'aria-invalid' )
+				: input.setAttribute( 'aria-invalid', true );
+		}
+
+		this.fire( 'validated', { valid : isValid, msg : msg } );
+	}
+
+	function resetField()
+	{
+		var input = this.getInputElement();
+		input.removeAttribute( 'aria-invalid' );
+	}
+
 
 	/**
@@ -274,13 +294,8 @@
 						if ( item.validate )
 						{
-							var isValid = item.validate( this );
-
-							if ( typeof isValid == 'string' )
-							{
-								alert( isValid );
-								isValid = false;
-							}
-
-							if ( isValid === false )
+							var retval = item.validate( this ),
+								isValid = retval === true ;
+
+							if ( !isValid )
 							{
 								if ( item.select )
@@ -291,6 +306,8 @@
 								evt.data.hide = false;
 								evt.stop();
-								return true;
 							}
+
+							handleFieldValidated.call( item, isValid, typeof retval == 'string' ? retval : undefined );
+							return  !isValid;
 						}
 					});
@@ -455,4 +472,7 @@
 				if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
 					dialogElement.removeListener( 'keypress', focusKeyPressHandler );
+
+				// Reset fields state when closing dialog.
+				iterContents( function( item ) { resetField.apply( item ); } );
 			} );
 		this.on( 'iframeAdded', function( evt )
