/** * PRISRA PATCH 1.1 — CUSTOM JS * Tilda: Site Settings → More → Custom JS (before ) * ------------------------------------------------------- * Targets: A1 lang, A2 alt attributes, A4 form labels, * F3 lazy/preload, F4 CLS reveal fix, U3 scroll fix */ (function () { 'use strict'; /* ================================================ A1: lang attribute — set from URL path Runs immediately (in via head.html too, this is the body-level fallback) ================================================ */ function setLang() { var p = window.location.pathname; var lang = 'ru'; if (p.startsWith('/ua')) lang = 'uk'; else if (p.startsWith('/en') || p.startsWith('/english')) lang = 'en'; if (document.documentElement.lang !== lang) { document.documentElement.lang = lang; } } setLang(); /* ================================================ A2: Alt attributes — audit + auto-fix missing Decorative images get alt="", semantic get a generated fallback (then review manually) ================================================ */ function fixAltAttributes() { var images = document.querySelectorAll('img:not([alt])'); images.forEach(function (img) { // Social icons — empty alt (decorative) if (img.closest('a[href*="facebook"]') || img.closest('a[href*="instagram"]') || img.closest('a[href*="linkedin"]') || img.closest('a[href*="youtube"]') || img.closest('a[href*="telegram"]') || img.closest('a[href*="whatsapp"]')) { img.setAttribute('alt', ''); return; } // Logo if (img.closest('.t-logo') || img.className.includes('logo')) { img.setAttribute('alt', 'PRISRA'); return; } // Service cards — try to read from sibling title var card = img.closest('.t-card, .t-tile__item, [class*="card"]'); if (card) { var title = card.querySelector('.t-card__title, .t-tile__title, h3, h4'); if (title && title.textContent.trim()) { img.setAttribute('alt', title.textContent.trim() + ' — PRISRA'); return; } } // Team photos — try from sibling var teamItem = img.closest('[class*="team"], [class*="person"]'); if (teamItem) { var name = teamItem.querySelector('[class*="name"], h3, h4, strong'); if (name) { img.setAttribute('alt', name.textContent.trim() + ', PRISRA team'); return; } } // Fallback — set empty (decorative) to avoid violation img.setAttribute('alt', ''); }); // aria-label on social icon links without text var socialLinks = document.querySelectorAll( 'a[href*="facebook.com"], a[href*="instagram.com"], a[href*="linkedin.com"], a[href*="youtube.com"], a[href*="t.me"], a[href*="telegram"]' ); var labelMap = { 'facebook.com': 'Facebook', 'instagram.com': 'Instagram', 'linkedin.com': 'LinkedIn', 'youtube.com': 'YouTube', 't.me': 'Telegram', 'telegram': 'Telegram', 'whatsapp': 'WhatsApp', 'wa.me': 'WhatsApp' }; socialLinks.forEach(function (a) { if (!a.getAttribute('aria-label') && !a.textContent.trim()) { for (var key in labelMap) { if (a.href.includes(key)) { a.setAttribute('aria-label', labelMap[key]); break; } } } }); } /* ================================================ A4: Form labels — inject sr-only labels for any input/textarea without accessible name ================================================ */ function fixFormLabels() { var labelMap = { 'name': 'Имя', 'имя': 'Имя', 'phone': 'Телефон', 'телефон': 'Телефон', 'tel': 'Телефон', 'email': 'Email', 'site': 'Сайт', 'url': 'Сайт', 'task': 'Что нужно', 'comment': 'Комментарий', 'комментарий': 'Комментарий' }; var inputs = document.querySelectorAll( 'input:not([type="hidden"]):not([type="submit"]):not([type="button"]), textarea, select' ); inputs.forEach(function (input) { // Already has accessible name if (input.getAttribute('aria-label') || input.getAttribute('aria-labelledby') || input.id && document.querySelector('label[for="' + input.id + '"]')) { return; } var placeholder = (input.getAttribute('placeholder') || '').toLowerCase(); var name = (input.getAttribute('name') || '').toLowerCase(); var labelText = null; for (var key in labelMap) { if (placeholder.includes(key) || name.includes(key)) { labelText = labelMap[key]; break; } } if (!labelText) { labelText = input.getAttribute('placeholder') || 'Поле формы'; } // Add aria-label (non-intrusive) input.setAttribute('aria-label', labelText); }); } /* ================================================ F3: Lazy loading — add to below-fold images (Hero image keeps eager/fetchpriority=high) ================================================ */ function fixLazyLoading() { var heroSection = document.querySelector('.t-cover, [data-record-type="cover"]'); var heroImgs = heroSection ? heroSection.querySelectorAll('img') : []; var heroImgSet = new Set(heroImgs); var allImgs = document.querySelectorAll('img:not([loading])'); allImgs.forEach(function (img) { if (heroImgSet.has(img)) { // Hero image: eager + fetchpriority img.setAttribute('loading', 'eager'); img.setAttribute('fetchpriority', 'high'); } else { img.setAttribute('loading', 'lazy'); // Add explicit dimensions if missing to prevent CLS if (!img.getAttribute('width') && img.naturalWidth) { img.setAttribute('width', img.naturalWidth); img.setAttribute('height', img.naturalHeight); } } }); // Video poster var videos = document.querySelectorAll('video:not([poster])'); videos.forEach(function (v) { // Can't set poster without knowing the image URL — log for manual fix console.warn('[PRISRA A11y] Video missing poster attribute:', v.src || v.currentSrc); }); } /* ================================================ F4 + U3: Scroll reveal — fix blank sections Override Tilda's slow reveal threshold ================================================ */ function fixRevealAnimations() { if (!window.IntersectionObserver) return; var obs = new IntersectionObserver(function (entries) { entries.forEach(function (e) { if (e.isIntersecting) { var el = e.target; el.style.opacity = '1'; el.style.transform = 'none'; el.style.visibility = 'visible'; obs.unobserve(el); } }); }, { threshold: 0, rootMargin: '0px 0px 800px 0px' }); // Make hero/above-fold visible immediately var aboveFold = document.querySelectorAll( '.t-cover *, .t-cover, [data-record-type="cover"] *' ); aboveFold.forEach(function (el) { el.style.opacity = '1'; el.style.transform = 'none'; el.style.animation = 'none'; }); // Observe below-fold animated elements var animated = document.querySelectorAll( '[data-animate-once="1"], [data-animate], .t-animate, .t-entry-animate' ); animated.forEach(function (el) { // Skip hero if (el.closest('.t-cover')) return; obs.observe(el); }); } /* ================================================ SEO2: Tap targets — fix too-small touchables ================================================ */ function fixTapTargets() { var minSize = 48; // Social links in header var socialLinks = document.querySelectorAll( '.t-header .t-sociallinks a, .t-header a[href*="social"]' ); socialLinks.forEach(function (a) { var rect = a.getBoundingClientRect(); if (rect.width < minSize || rect.height < minSize) { a.style.minWidth = minSize + 'px'; a.style.minHeight = minSize + 'px'; a.style.display = 'inline-flex'; a.style.alignItems = 'center'; a.style.justifyContent = 'center'; } }); // Dropdown arrows var dropdownBtns = document.querySelectorAll( '.t-menu__list-item > button, [class*="dropdown-toggle"]' ); dropdownBtns.forEach(function (btn) { var rect = btn.getBoundingClientRect(); if (rect.height < minSize) { btn.style.minHeight = minSize + 'px'; btn.style.padding = '12px'; } }); } /* ================================================ RUN: DOMContentLoaded ================================================ */ if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } function init() { fixAltAttributes(); fixFormLabels(); fixLazyLoading(); fixRevealAnimations(); fixTapTargets(); } // Re-run after Tilda's own DOMReady (Tilda fires custom events) document.addEventListener('tildaready', function () { fixAltAttributes(); fixFormLabels(); fixLazyLoading(); fixRevealAnimations(); }); })();
 
PRisra

Як безкоштовно просувати свій бізнес

Ми знаємо багато перевірених способів як зробити так, щоб про вашу компанію дізналося якомога більше людей. Розповімо ТОП 23 способу.
Насправді є багато способів як безкоштовно або за малі гроші заявити про себе, привернути безліч клієнтів, а також зайняти лідируючу позицію серед конкурентів. Для того, щоб набрати аудиторію в 50 мільйонів чоловік, радіо витратило цілих 38 років, телебаченню знадобилося 13 років. Facebook менше ніж за рік придбав аж 200 мільйонів користувачів.

Статистика показує, що користувачі, які мають акаунти в соц мережах сидять в них (мінімум) по дві години на день. Таких користувачів понад 82%!
Тому не скористатися даною нішею буде дуже нерозумно.

Кількість людей, що реєструються в соц. мережах для отримання інформації постійно збільшується. Також число бізнесменів, які розуміють, що соціальні медіа - це, мабуть, один з найбільш ефективних маркетингових каналів, постійно зростають.

Якщо ви ще не розкрутили свій проект через соціальні мережі, то познайомтеся з ефективними способами розкрутки.

На відміну від компаній-гігантів, малий і середній бізнес не має величезних бюджетів на рекламу і маркетинг. Ось тому власникам невеликих фірм потрібно бути винахідливими, цілеспрямованими і весь час придумувати щось оригінальне для просування власної справи. На щастя, сьогодні є багато такого, про що раніше можна було тільки мріяти.

Для того щоб просувати свій малий бізнес / товар або послугу зовсім не обов'язково створювати для цього сайт, часто цілком достатньо мати розкручені сторінки в соц мережах, які і будуть вашим сайтом.

Від того наскільки легко користувач знаходить вашу локацію (булочну, кава-точку або автосервіс) і знаходять її в принципі, може надати величезний вплив на успіх вашого бізнесу. Труднощі, що виникли під час пошуку, а також неактуальна інформація (контакти, режим роботи) на картах, в навігаторах і інших релевантних джерелах може змусити потенційного клієнта звернутися до конкурента і більше ніколи не повернутися.

Ми знаємо багато перевірених способів як зробити так, щоб про вашу маленьку, але класну компанію дізналося якомога більше людей.

Беріть участь в професійних конференціях.
Діліться досвідом і ідеями із зацікавленою аудиторією і привертайте увагу до того, що ви робите.

Просіть задоволених клієнтів розповідати про вашу компанію в соціальних мережах.
Тому що відгуки клієнтів звучать набагато переконливіше ваших власних слів. Так вже це влаштовано.

Попрацюйте над короткою презентацією вашої компанії.
Ви можете зрозуміло описати свій бізнес, вклавшись в 30 секунд? Якщо ні, радимо навчитися робити це якомога швидше.

Пропонуйте безкоштовні консультації.
Вони допомагають завоювати довіру клієнтів краще будь-якої реклами і нерідко переростають в приємне і взаємовигідне співробітництво.

Відзначайте людей, коли публікуєте пости в соціальних мережах.
Тоді запис помітить не тільки ваша аудиторія, а й друзі того, кого ви відзначили.

Залишайте відгуки на сервіси і платформи, якими регулярно користуєтеся.
Це вигідно всім. Творцям сервісу потрібен зворотний зв'язок, а вам - увага і інтерес інших користувачів.

Влаштовуйте конкурси в соціальних мережах.
Коли люди беруть участь в конкурсі, вони так чи інакше розповідають друзям і знайомим про вашу компанію. Хочете заощадити на призи - подаруйте що-небудь хороше з власного магазину або запросіть переможця на безкоштовну послугу.

Пишіть гостьові пости в блоги, що відповідають тематиці вашого бізнесу.
Можна працювати над власним блогом, а можна зв'язатися з авторами вже популярного ресурсу, написати пост для них і вийти таким чином на нову аудиторію.

Зробіть брендований підпис для ділових листів.
Додайте до неї логотип компанії і посилання на ваш сайт. Це підштовхує людей до того, щоб переходити на нього, та й виглядає професійно.

Заводьте знайомства в LinkedIn.
Ця соціальна мережа ідеально підходить для пошуку ділових контактів, спілкування на професійні теми і презентації своїх навичок і умінь.

Заведіть власний відеоблог.

У будь-якій діяльності є такі питання, які хвилюють буквально всіх. Ви можете записувати відеоролики з відповідями на них, ділитися знаннями і особистим досвідом.

Не забувайте про локальний ринок.
Слідкуйте за місцевими новинами, знайомтеся з людьми і беріть участь в заходах. Дуже може бути, що завоювати локальний ринок у вас вийде набагато швидше, ніж внутрішній.

Використовуйте популярні хештеги.
Коли почнете писати черговий пост в соцмережі, не забудьте переглянути список популярних хештегів і використовувати парочку, щоб стати помітним для тієї аудиторії, яка вас не читає.

Спілкуйтеся з клієнтами.
Повага і ввічливість творять чудеса. Якщо ви будете уважно ставитися до клієнтів і цікавитися, чи все їм сподобалося, вони напевно прийдуть до вас ще не один раз.

Зареєструйтесь в онлайн-довідниках.
Чим більше в мережі посилань на ваш сайт, тим вище його позиція в результатах пошуку.

Переконайтеся, що співробітники - на вашому боці.
Партнери, співробітники і постачальники можуть стати чудовими посланцями вашого бренду, якщо ви зумієте вибудувати з ними хороші стосунки.

Займайтеся громадською діяльністю.

Це корисно і для власного розвитку, і для зміцнення репутації вашого бізнесу.

Надавайте спонсорську допомогу і підтримку.
Ще один варіант взаємовигідного співробітництва. Суть його в тому, що ви безоплатно надаєте товари з вашим логотипом для проведення будь-якого фестивалю, майстер-класу або зйомки відеоролику. Навіть якщо це в підсумку не окупиться, люди звернуть увагу на назву вашої компанії і запам'ятають його.

Зробіть VIP-знижку для виняткової групи клієнтів.
Дайте людям можливість відчути себе особливими і порадуйте їх обмеженою пропозицією, призначеним саме для них.

Використовуйте різні канали комунікації.
Так, всі сидять ВКонтакті, Фейсбуці і Інстаграмі, але крім цих майданчиків є тематичні форуми і співтовариства, які напевно відвідує ваша цільова аудиторія. З'ясуйте, де мешкають потрібні вам люди і постарайтеся налагодити з ними контакт.

Карти.
Зробити позначку на карті обов'язково варто всім, хто прив'язаний до певної локації (будь то невелика булочна, аптека, СТО або перукарня в районі). Карти інтегровані з пошуковими системами, і в результатах пошуку товарів або послуг (наприклад "кав'ярня поруч зі мною") карта з нанесеними мітками виходить на перше місце. Саме так можна обходити "прокатаних" конкурентів і отримувати клієнтів, що ідеально підходять за територіальною ознакою.

Роздавайте візитки всім клієнтам.
Як не дивно, до цих пір один з найефективніших офлайн-способів просування - це роздача візиток при знайомстві. Візитки можна назвати повністю безкоштовним способом ведення маркетингу, однак вони крім зручності передачі безпосередньо вашого контакту також дозволяють реалізувати креативні задуми з мінімальною затратою коштів.

Бізнес-сторінка Facebook.

Бізнес-сторінка Facebook - це сторінка компанії (або її філії), де вказані основні дані: адреса, номери телефонів, графік роботи. Додаткова інформація також важлива: рекомендації та відгуки користувачів, фотографії, рейтинг, способи оплати, можливість зв'язатися з представником за допомогою месенджера та ін.

Інструменти бізнес-сторінки допоможуть оптимізувати зворотний зв'язок, підвищити впізнаваність бренду і отримати більше лояльних клієнтів.

Крім того, функціонал сторінок дозволяє ефективно працювати з відгуками. А значить, разом з інформацією від клієнтів власник бізнесу отримує можливість покращувати свій продукт або сервіс.

Якщо бізнес спрямований на роботу з людьми, то Facebook - ідеальний інструмент. Переконайтеся, що серед користувачів соцмережі є ваша цільова аудиторія (мова не тільки про вік, стать і географії). Інтереси і поведінковий фактор також грають важливу роль. Майте на увазі, регіональні користувачі можуть відрізнятися від "столичних".

Підписуйтесь на наш Інстаграм @prisraofficial
Оцініть матеріал:
PRISRA
PRISRA

Будь в курсі новин